Autor Wątek:  Ratowanie MaSZyny, implementacja ficzerow od Q do głównej gałęzi, lifting exe  (Przeczytany 261291 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
Wczytuje z .fiz. Plik add jest jako propozycja do obgadaina na forum, moze w przyszlosci ogarne wczytywanie (jest troche czytelniejszy od .fiz ). Te parametry nowe, to beda do wstawiania se do kabiny dowolnych modeli. Pozatym widzi mi sie zeby byl to ogolny plik nie tylko od fizyki, ale wspolny do wszystkiego co ma sluzyc do preparowania indywidualnej charakterystyki pojazdu, bo po co trzymac osobno tak jak w .fiz i .mmd?

Offline miko22

  • Wiadomości: 605
    • Zobacz profil
    • PKP - Kolej Polska
  • Otrzymane polubienia: 182
Nie działa podmienianie składu w Rainsted dla td2. Po zmianie oryginalnego na ET41 z 40 Eaosami sceneria startuje kamerą obok składu EP07-424. Logi z 12:15 i 12:17 -> http://eu07.es/serwerdomu/976472020/ To samo na starym td - log z 12:24, a np. przy zmianie SM42-907 na SM42-2196 w elektrocieplownia_dobre sceneria uruchamia się normalnie - log z 12:27. Kolejne logi, to kolejne próby. Po wyłączeniu i załączeniu startera udało się podmienić na td, ale na td2 już nie. Teraz znowu nie działa na td. Przestało też działać na elektrocieplownia_dobre - logi z 12:45 i 12:46. Dla przykładu nie działa również podmiana EN57-1051 na EN57-1146 w moczniki_en57 i tak samo sceneria uruchamia się na zewnątrz oryginalnego składu w pewnej odległości od niego (w tym przypadku na drugim końcu stacji) - log z 12:50. Nie pomaga też już restart Rainsteda. Ktoś może potwierdzić takie problemy?

Offline EP08_015

  • Zasłużony dla Symulatora
  • Wiadomości: 4138
    • Zobacz profil
  • Otrzymane polubienia: 216
Odp: Ratowanie MaSZyny, implementacja ficzerow od Q do
« Odpowiedź #542 dnia: 16 Stycznia 2016, 13:01:52 »
Jak wylaczysz zapis pliku tymczasowego, to nic nie zmienisz.
Koniec tworczosci unoffowej i prywatnej.
http://chomikuj.pl/EP08-015

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
No juz pisalem o tym ze ja ine bede sie ograinczal do startera @Ry. byc moze w pozniejszym terminie napisze cos swojego.
Na td2.scn nie podmienisz bo tam jest uzywany nowy typ wpisow dolaczajacych moduly scenerii. Na innych ine wiem czemu tak sie dzieje, powinno dzialac, ale widocznie cos popsulem. Moze przez przypadek uda mi sie to naprawic :D.

A teraz UWAGA Panowie, mam dla was wazny komunikat...

Do kogo naleza logi podswietlone na zolto ktore blokuja wczytywanie scenerii na 'config parsing...' ?


http://eu07.es/serwerdomu/
« Ostatnia zmiana: 16 Stycznia 2016, 13:10:28 wysłana przez queuedEU »

Offline EP08_015

  • Zasłużony dla Symulatora
  • Wiadomości: 4138
    • Zobacz profil
  • Otrzymane polubienia: 216
To ciekawe dlaczego u mnie działa nawet z plikiem tymczasowym?
Koniec tworczosci unoffowej i prywatnej.
http://chomikuj.pl/EP08-015

Offline mac310

  • Wiadomości: 420
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 38
Moje userpidy to: 1450749348 (obsługa z klawiatury) i 183369299 (obsługa przez PoKeys)
Ostatnio zauważyłem taką prawidłowość, że jak się np. td2 nie chce uruchomić i wisi na parsowaniu linii poleceń to próbuję uruchomic inne scenerie aż znajdę taką, która się w końcu uruchomi i wtedy jak wrócę do td2 to też się wtedy uruchamia.
Nie działa zoom na kółku myszy.
« Ostatnia zmiana: 16 Stycznia 2016, 18:35:52 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5902
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 409
Shift+LPM i Shift+PPM, to teraz zoom. Mnie przestało działać na Win10, ale po ponownym rozpakowaniu paczki od Q. znów ruszyło...Takie tam bolączki drobne. Na screenie maksimum kąta widzenia, tylko te komunikaty lądują na środku ekranu, mamy się do tego przyzwyczaić?

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
Czekajcie cierpliwie.

Offline bohunIC

  • Zasłużony dla Symulatora
  • Wiadomości: 1407
  • Ну погоди
    • Zobacz profil
  • Otrzymane polubienia: 14
No w koncu zmienilem sobie parametr wire i mam miesiste i grube druty jezdne. Zoom tez spoko, no to jak sie ukaze paczka z nowa siecia to zakasam rekawy :)

Offline mac310

  • Wiadomości: 420
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 38
Shift+LPM i Shift+PPM, to teraz zoom.
Jak tak to potwierdzam... działa :) W sumie dla mnie działając z pulpitem to te wszystkie bajery są nie potrzebne. Zbliżenie na stałe ustawiam tak, żeby tylko widok z szyby był i najchętniej to usunąłbym haslera z ekranu. Dźwięki też niektóre wyłączam mając realistyczne. Wieć z mojego punktu widzenia fajnie byłoby, gdyby niektóre elementy wystroju wnętrza kabiny nie były jego integralną częścią i żeby je można było wyłączać i mieć czysty widok na okno.
Historia budowy pulpitu lokomotywy serii EU07.

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
Dwa kolejne panele informacyjne (spod F1 i F2) przeniesione na nowy system wyswietlania informacji (LMB+4, LNB+5)

  Dodano: 16 Stycznia 2016, 23:09:45
Ok, wiec dzis testujemy dwa nowe panele info (LMB+4, LMB+5). Poza tym czytac I N F O.txt. W config.txt nic sie nie zmienia wiec nie musicie
nadpisywac czy kopiowac wpisow. Dochodzi tez nowy model w models/ip/billboards/.


EU07-160116-1
« Ostatnia zmiana: 16 Stycznia 2016, 23:09:45 wysłana przez queuedEU »

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5902
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 409
Co prawda musiałem dowiedzieć się co to jest LMB (i RMB, przy okazji), ale zmieniacz informacji działa bez zarzutu.. Przyrośnie nam klawiszologia, ale miejmy nadzieję że z pożytkiem. Logi się wysłały , więc tu bez trucia. W załączniku odpowiedź na jedno z ciekawszych pytań zadanych w tym wątku.
P>S> Uruchomienia z Rainsteda i bezpośrednio z pliku exe, bez błędów.
« Ostatnia zmiana: 17 Stycznia 2016, 00:46:19 wysłana przez Krzysiek626 »

Offline trzecia_bateria

  • Wiadomości: 27
    • Zobacz profil
  • Otrzymane polubienia: 1
Na plus. Podobają mi się nowe (choć pewnie pojawiły się we wcześniejszych exe) ekrany ładowania modelviewera. Fajny jest także ekran z pytaniem o wyjście z programu. Zoom po wywaleniu z rolki myszy działa o wiele lepiej, choć moim zdaniem zmiana FOV mogłaby działać jeszcze ciut szybciej. Coś nie mogę zaobserwować w akcji nowych semaforów, ale będę cierpliwie szukać :)

A teraz uwagi. Nowe panele informacyjne zajmują naprawdę mnóstwo miejsca na ekranie. A gdyby tak wywalić z tych paneli czarne, półprzeźroczyste tła? W przypadku krótkich komunikatów nie mielibyśmy 1/4 ekranu zajętej czarnym, pustym panelem. Widzę, że pod LPM+4 pojawiło się to, co wcześniej siedziało pod klawiszem F1. Myślę, że te informacje powinny być prezentowane w osobnym panelu- zegar plus bardzo skrócony rozkład jazdy są chyba w dość częstym użyciu, może więc warto zrobić je tak, by były dość "dyskretne" na ekranie. Idąc dalej, czy aby na pewno potrzebujemy dwóch paneli, które w gruncie rzeczy można by połączyć w jeden? Mówię tutaj o informacjach nt aktywnej lokomotywy i najbliższego pojazdu. Ewentualnie może niektóre z tych informacji prezentować tylko w trybie debugowania?

I jeszcze jedna rzecz. Odpaliłem przykładowy scenariusz "linia61_tl-1" na exe 160116-1 i mam problem ze świecącą roślinnością. To samo jest na 150116-1, z kolei 120116 nie wywołuje tego błędu.
userpid: 875721375

Offline mac310

  • Wiadomości: 420
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 38
Ja miałem taki efekt "swiecenia" niektórych elementów scenerii (przykład ze świecącym płotem i innymi elementami np. rozjazdy, niektóre drzewa, budynki itp) jak miałem wybraną zintegrowaną kartę graficzną intela w laptoku. Jak przełączylem się na zewnętrzną kartę GForce (czy NVidia na innym laptopie) to problem zniknął.
« Ostatnia zmiana: 17 Stycznia 2016, 18:09:43 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
Ja tez wlasnie mialem problem ze swiecacym niebem, inni mowili ze nie maja. No i tak zaczalem naprawiac coby u mnie nie bylo no i efekt jest taki,  ze teraz Wy macie.

  Dodano: 17 Stycznia 2016, 19:14:00
Na plus. Podobają mi się nowe (choć pewnie pojawiły się we wcześniejszych exe) ekrany ładowania modelviewera. Fajny jest także ekran z pytaniem o wyjście z programu. Zoom po wywaleniu z rolki myszy działa o wiele lepiej, choć moim zdaniem zmiana FOV mogłaby działać jeszcze ciut szybciej. Coś nie mogę zaobserwować w akcji nowych semaforów, ale będę cierpliwie szukać :)
Zoom pod rolka byl niepraktyczny, tam mozna cos innego np. z propozycji @nbmx'a dac. Mozna dac w konfigu ustawianie predkosci regulacji FoV. Na razie tylko sygnaly 'pulsujace' sie zmienily :).

Cytat: trzecia_bateria
A teraz uwagi. Nowe panele informacyjne zajmują naprawdę mnóstwo miejsca na ekranie. A gdyby tak wywalić z tych paneli czarne, półprzeźroczyste tła? W przypadku krótkich komunikatów nie mielibyśmy 1/4 ekranu zajętej czarnym, pustym panelem. Widzę, że pod LPM+4 pojawiło się to, co wcześniej siedziało pod klawiszem F1. Myślę, że te informacje powinny być prezentowane w osobnym panelu- zegar plus bardzo skrócony rozkład jazdy są chyba w dość częstym użyciu, może więc warto zrobić je tak, by były dość "dyskretne" na ekranie. Idąc dalej, czy aby na pewno potrzebujemy dwóch paneli, które w gruncie rzeczy można by połączyć w jeden? Mówię tutaj o informacjach nt aktywnej lokomotywy i najbliższego pojazdu. Ewentualnie może niektóre z tych informacji prezentować tylko w trybie debugowania?
Przezroczystosc tla jest w konfigu, od nastepnej wersji powinno dzialac prawidlowo. Po przeniesieniu na nowy system wyswietlania wszystkich paneli informacyjnych, bedzie sie myslec o jakiejs praktycznej orgainzacji tego.

Cytat: trzecia_bateria
I jeszcze jedna rzecz. Odpaliłem przykładowy scenariusz "linia61_tl-1" na exe 160116-1 i mam problem ze świecącą roślinnością. To samo jest na 150116-1, z kolei 120116 nie wywołuje tego błędu.

Ogarniete.
« Ostatnia zmiana: 17 Stycznia 2016, 19:14:00 wysłana przez queuedEU »

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5902
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 409
Mam to samo co mac310, ale skoro już ogarnięte... Zoom, jeśli wywalisz z pod jeg działania ekrany informacyjne, będzie wręcz miodzio. I jeszcze coś, nie cierpię nocnych scenerii, stąd niechęć do ich testowania według ustawionego atmo. Z tego powodu nie widziałem błędu świecenia. Ale odpalałem standardowo umieszczony w PC Quark Noc i wydaje mi się, że tam jest ok. Zaraz to sprawdzę i dam znać. Edith: W Quarku jest ciemna noc, ale świecą niektóre drzewa.
« Ostatnia zmiana: 17 Stycznia 2016, 19:29:32 wysłana przez Krzysiek626 »

Offline mac310

  • Wiadomości: 420
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 38
Ja za to wolę nocne scenerie bo zwykle tylko w nocy mam czas pojeździć i wtedy w połączeniu z pulpitem wygląda to znacznie lepiej. Jak pogaszę wszystkie światła w pokoju to można się poczuć jak w kabinie ;) W dzień wszystko dookoła widać i psuje to trochę realizm otoczenia. No ale rozumiem, ze jak się używa klawiatury to lepiej widać co się dzieje dookoła i widzieć klawiaturę. Sam pewnie wolałbym dzienne scenerie.
Historia budowy pulpitu lokomotywy serii EU07.

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
UWAGA! Ci, ktorzy maja problem z 'config parsing...' - problem moze rozwiazac ustawienie uruchamiania jako administrator.

  Dodano: 18 Stycznia 2016, 00:42:21
Wszytkie panele informacyjne z klawiszy funkcyjnych przeniesione pod LMB+?, gdzie ? to cyfry od 0 do 9. Testowac czy sie nie wysypuje np. w debugmode. Oczywiscie przeniesienie na inna kombinacje klawiszowa bylo tymczasowe na czas przenoszenia. Jezeli uznacie ze  'to jest pro, tak jest lepiej' to bedzie mozna zostawic. Tak czy inaczej w pozniejszym terminie planuje wprowadzic klawiszologie konfigurowalna przez uzytkownika.
 
EU07-180116-1
« Ostatnia zmiana: 18 Stycznia 2016, 00:59:48 wysłana przez queuedEU »

Offline Krzysiek626

  • Zasłużony dla Symulatora
  • Wiadomości: 5902
  • EXIT
    • Zobacz profil
    • Krzysiek626
  • Otrzymane polubienia: 409
No cóż, wszystko gra i buczy i jest na swoim miejscu. Ekrany informacyjne są przywiązane do ekranu bez względu na stosowany kąt widzenia - o to mi chodziło. Dwie uwagi, informacje o debug mode mogły zostać czerwone, żółte mało widoczne są. Może inna czcionka. Info o prowadzonym loku, uzupełnił bym o pozycję nastawnika. 
Cytuj
Ja za to wolę nocne scenerie bo zwykle tylko w nocy mam czas pojeździć
Ja niestety mam problem z oczami, stąd też nie za bardzo te nocne scenerie są dla mnie. Gdyby było jakieś rozsądne oświetlenie, to nocny klimat potrafiłbym zaakceptować. Klawiszologia, trzeba się będzie przestawić, ale... w końcu miał być rozwój. Z tym, że umożliwienie samodzielnej konfiguracji może (nie mus) przynieść zalew pytań, od tych to im nie działa.  Odpala się bezpośrednio i przez rainsted.

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
Na jednym panelu z informacjami (tam gdzie wszystko jest w slupku po lewej), masz pozycje. Ale jak trzeba moge wieksza czcionka dac jakies nastawy. Poza tym trzeba to posegregowac jakos, bo bez ladu jest. Ja nie mam koncepcji.
« Ostatnia zmiana: 18 Stycznia 2016, 08:27:41 wysłana przez Sawi »

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 120
Jak rozumiem tego typu teksty jak w załączniku będą pobierane z pliku tekstowego w zależności od wybranej wersji językowej.
Może w końcu sobie pobiorę i sprawdzę jak to wygląda ;)
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
N0o oczywiscie, wszystko bedzie dobrze. A tymczasem stworzylem event setfog...

event fog1 setfog 1.1 0 3.0 750 0.05 endevent
event fog2 setfog 1.1 0 1.0 20 0.07 endevent

setfog A B C D E
a - opoznienie zadzialania
b - costam, pewnie nic
c - docelowy poczatek mgly
d - docelowy koniec mgly
e - o ile jednostek bedzie sie zmieniac na klatke
« Ostatnia zmiana: 18 Stycznia 2016, 08:31:52 wysłana przez queuedEU »

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 120
To będzie działać na zasadzie oparu mgły widocznego z daleka, czy raczej że mgła zacznie nas okrywać od pewnego miejsca?
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
sciana mgly blizej/dalej...

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 120
To ja proponuję dwie rzeczy:
1. co już jest? wjeżdżając w mgłę "ciemność" narasta w zależności od różnicy między jasnością światła w mgle i poza mgłą
2. pojawianie się mgły jest stopniowe po wywołaniu eventu (nie tak, że nagle się pojawia obłok). Może np podnosi się z ziemi w zdefiniowanym czasie?
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
odpowiem tylko na 2.
To jest operowaine parametrami start i end standardowej openglowej mgly, ewentualnie mozna dac jeszcze gestocs, ale to nie na wszystkich kartach dziala. Szybkosc przyblizania/oddalania zalezy od wspolczynnika w ostatnim parametrze. Aby byla mozliwosc wjechania w 'oblok' mgly trzeba by wprowadzic obsluge mgly wolumetrycznej, wtedy tez bylaby mozliwosc podnoszenia/opuszczania ewentualnie jakies chmury na czasteczkach :D.

https://youtu.be/xOXbSR2fSa4

  Dodano: 18 Stycznia 2016, 14:30:25
Wezcie mi to wyjasnijcie, bo ja nie ogarniam... Czy tu ktos znowu cos przekombinowal? o.0
            ReplacableSkin =
                    Global::asCurrentTexturePath + ReplacableSkin; // skory tez z dynamic/...
                if ((i = ReplacableSkin.Pos("|")) > 0) // replacable dzielone
                {
                    iMultiTex = -1;
                    ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                        NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                        Global::iDynamicFiltering);
                    ReplacableSkin.Delete(1, i); // usunięcie razem z pionową kreską
                    ReplacableSkin = Global::asCurrentTexturePath +
                                     ReplacableSkin; // odtworzenie początku ścieżki
                    // sprawdzić, ile jest i ustawić iMultiTex na liczbę podanych tekstur
                    if (!ReplacableSkin.IsEmpty())
                    { // próba wycięcia drugiej nazwy
                        iMultiTex = -2; // skoro zostało coś po kresce, to są co najmniej dwie
                        if ((i = ReplacableSkin.Pos("|")) == 0) // gdy nie ma już kreski
                            ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                                NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                                Global::iDynamicFiltering);
                        else
                        { // jak jest kreska, to wczytać drugą i próbować trzecią
                            ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                                NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                                Global::iDynamicFiltering);
                            ReplacableSkin.Delete(1, i); // usunięcie razem z pionową kreską
                            ReplacableSkin = Global::asCurrentTexturePath +
                                             ReplacableSkin; // odtworzenie początku ścieżki
                            if (!ReplacableSkin.IsEmpty())
                            { // próba wycięcia trzeciej nazwy
                                iMultiTex =
                                    -3; // skoro zostało coś po kresce, to są co najmniej trzy
                                if ((i = ReplacableSkin.Pos("|")) == 0) // gdy nie ma już kreski
                                    ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                                        NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                                        Global::iDynamicFiltering);
                                else
                                { // jak jest kreska, to wczytać trzecią i próbować czwartą
                                    ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                                        NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                                        Global::iDynamicFiltering);
                                    ReplacableSkin.Delete(1, i); // usunięcie razem z pionową kreską
                                    ReplacableSkin = Global::asCurrentTexturePath +
                                                     ReplacableSkin; // odtworzenie początku ścieżki
                                    if (!ReplacableSkin.IsEmpty())
                                    { // próba wycięcia trzeciej nazwy
                                        iMultiTex = -4; // skoro zostało coś po kresce, to są co
                                        // najmniej cztery
                                        ReplacableSkinID[-iMultiTex] =
                                            TTexturesManager::GetTextureID(
                                                NULL, NULL,
                                                ReplacableSkin.SubString(1, i - 1).c_str(),
                                                Global::iDynamicFiltering);
                                        // więcej na razie nie zadziała, a u tak trzeba to do modeli
                                        // przenieść
                                    }
                                }
                            }
                        }
                    }
                }
                if (iMultiTex > 0)
                { // jeśli model ma 4 tekstury
                    ReplacableSkinID[1] = TTexturesManager::GetTextureID(
                        NULL, NULL, (ReplacableSkin + ",1").c_str(), Global::iDynamicFiltering);
                    if (ReplacableSkinID[1])
                    { // pierwsza z zestawu znaleziona
                        ReplacableSkinID[2] = TTexturesManager::GetTextureID(
                            NULL, NULL, (ReplacableSkin + ",2").c_str(), Global::iDynamicFiltering);
                        if (ReplacableSkinID[2])
                        {
                            iMultiTex = 2; // już są dwie
                            ReplacableSkinID[3] = TTexturesManager::GetTextureID(
                                NULL, NULL, (ReplacableSkin + ",3").c_str(),
                                Global::iDynamicFiltering);
                            if (ReplacableSkinID[3])
                            {
                                iMultiTex = 3; // a teraz nawet trzy
                                ReplacableSkinID[4] = TTexturesManager::GetTextureID(
                                    NULL, NULL, (ReplacableSkin + ",4").c_str(),
                                    Global::iDynamicFiltering);
                                if (ReplacableSkinID[4])
                                    iMultiTex = 4; // jak są cztery, to blokujemy podmianę tekstury
                                // rozkładem
                            }
                        }
                    }
                    else
                    { // zestaw nie zadziałał, próbujemy normanie
                        iMultiTex = 0;
                        ReplacableSkinID[1] = TTexturesManager::GetTextureID(
                            NULL, NULL, ReplacableSkin.c_str(), Global::iDynamicFiltering);
                    }
                }

Moze w calosci, bo tak z kontekstu...

   ReplacableSkin =
                    Global::asCurrentTexturePath + ReplacableSkin; // skory tez z dynamic/...
                if ((i = ReplacableSkin.Pos("|")) > 0) // replacable dzielone
                {
                    iMultiTex = -1;
                    ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                        NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                        Global::iDynamicFiltering);
                    ReplacableSkin.Delete(1, i); // usunięcie razem z pionową kreską
                    ReplacableSkin = Global::asCurrentTexturePath +
                                     ReplacableSkin; // odtworzenie początku ścieżki
                    // sprawdzić, ile jest i ustawić iMultiTex na liczbę podanych tekstur
                    if (!ReplacableSkin.IsEmpty())
                    { // próba wycięcia drugiej nazwy
                        iMultiTex = -2; // skoro zostało coś po kresce, to są co najmniej dwie
                        if ((i = ReplacableSkin.Pos("|")) == 0) // gdy nie ma już kreski
                            ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                                NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                                Global::iDynamicFiltering);
                        else
                        { // jak jest kreska, to wczytać drugą i próbować trzecią
                            ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                                NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                                Global::iDynamicFiltering);
                            ReplacableSkin.Delete(1, i); // usunięcie razem z pionową kreską
                            ReplacableSkin = Global::asCurrentTexturePath +
                                             ReplacableSkin; // odtworzenie początku ścieżki
                            if (!ReplacableSkin.IsEmpty())
                            { // próba wycięcia trzeciej nazwy
                                iMultiTex =
                                    -3; // skoro zostało coś po kresce, to są co najmniej trzy
                                if ((i = ReplacableSkin.Pos("|")) == 0) // gdy nie ma już kreski
                                    ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                                        NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                                        Global::iDynamicFiltering);
                                else
                                { // jak jest kreska, to wczytać trzecią i próbować czwartą
                                    ReplacableSkinID[-iMultiTex] = TTexturesManager::GetTextureID(
                                        NULL, NULL, ReplacableSkin.SubString(1, i - 1).c_str(),
                                        Global::iDynamicFiltering);
                                    ReplacableSkin.Delete(1, i); // usunięcie razem z pionową kreską
                                    ReplacableSkin = Global::asCurrentTexturePath +
                                                     ReplacableSkin; // odtworzenie początku ścieżki
                                    if (!ReplacableSkin.IsEmpty())
                                    { // próba wycięcia trzeciej nazwy
                                        iMultiTex = -4; // skoro zostało coś po kresce, to są co
                                        // najmniej cztery
                                        ReplacableSkinID[-iMultiTex] =
                                            TTexturesManager::GetTextureID(
                                                NULL, NULL,
                                                ReplacableSkin.SubString(1, i - 1).c_str(),
                                                Global::iDynamicFiltering);
                                        // więcej na razie nie zadziała, a u tak trzeba to do modeli
                                        // przenieść
                                    }
                                }
                            }
                        }
                    }
                }
                if (iMultiTex > 0)
                { // jeśli model ma 4 tekstury
                    ReplacableSkinID[1] = TTexturesManager::GetTextureID(
                        NULL, NULL, (ReplacableSkin + ",1").c_str(), Global::iDynamicFiltering);
                    if (ReplacableSkinID[1])
                    { // pierwsza z zestawu znaleziona
                        ReplacableSkinID[2] = TTexturesManager::GetTextureID(
                            NULL, NULL, (ReplacableSkin + ",2").c_str(), Global::iDynamicFiltering);
                        if (ReplacableSkinID[2])
                        {
                            iMultiTex = 2; // już są dwie
                            ReplacableSkinID[3] = TTexturesManager::GetTextureID(
                                NULL, NULL, (ReplacableSkin + ",3").c_str(),
                                Global::iDynamicFiltering);
                            if (ReplacableSkinID[3])
                            {
                                iMultiTex = 3; // a teraz nawet trzy
                                ReplacableSkinID[4] = TTexturesManager::GetTextureID(
                                    NULL, NULL, (ReplacableSkin + ",4").c_str(),
                                    Global::iDynamicFiltering);
                                if (ReplacableSkinID[4])
                                    iMultiTex = 4; // jak są cztery, to blokujemy podmianę tekstury
                                // rozkładem
                            }
                        }
                    }
                    else
                    { // zestaw nie zadziałał, próbujemy normanie
                        iMultiTex = 0;
                        ReplacableSkinID[1] = TTexturesManager::GetTextureID(
                            NULL, NULL, ReplacableSkin.c_str(), Global::iDynamicFiltering);
                    }
                }
                else
                    ReplacableSkinID[1] = TTexturesManager::GetTextureID(
                        NULL, NULL, ReplacableSkin.c_str(), Global::iDynamicFiltering);
                if (TTexturesManager::GetAlpha(ReplacableSkinID[1]))
                    iAlpha = 0x31310031; // tekstura -1 z kanałem alfa - nie renderować w cyklu
                // nieprzezroczystych
                else
                    iAlpha = 0x30300030; // wszystkie tekstury nieprzezroczyste - nie renderować w
                // cyklu przezroczystych
                if (ReplacableSkinID[2])
                    if (TTexturesManager::GetAlpha(ReplacableSkinID[2]))
                        iAlpha |= 0x02020002; // tekstura -2 z kanałem alfa - nie renderować w cyklu
                // nieprzezroczystych
                if (ReplacableSkinID[3])
                    if (TTexturesManager::GetAlpha(ReplacableSkinID[3]))
                        iAlpha |= 0x04040004; // tekstura -3 z kanałem alfa - nie renderować w cyklu
                // nieprzezroczystych
                if (ReplacableSkinID[4])
                    if (TTexturesManager::GetAlpha(ReplacableSkinID[4]))
                        iAlpha |= 0x08080008; // tekstura -4 z kanałem alfa - nie renderować w cyklu
                // nieprzezroczystych
            }

Grzesiu, wyjasnij mi to :).Przede wszystkim nie rozumie dlaczego w pierwszej czesci odbywa sie przydzielanie do tablicy na ujemnym poziomie
« Ostatnia zmiana: 18 Stycznia 2016, 14:57:32 wysłana przez queuedEU »

Offline djuzi

  • Zasłużony dla Symulatora
  • Wiadomości: 144
    • Zobacz profil
  • Otrzymane polubienia: 1
A tymczasem stworzylem event setfog...
Mgła po zmianie eventem będzie płynnie się zmieniać, czy też nagle zmieni swoje parametry?

Offline queuedEU

  • Zasłużony dla Symulatora
  • Wiadomości: 1265
    • Zobacz profil
    • Celebrity Maszyna
  • Otrzymane polubienia: 33
Obczaj film :). Moze szalu nie ma, ale moze komus sie przyda.
« Ostatnia zmiana: 18 Stycznia 2016, 15:02:59 wysłana przez queuedEU »

Offline Cesky Kretek

  • Zasłużony dla Symulatora
  • Wiadomości: 1686
  • Trust no one.
    • Zobacz profil
  • Otrzymane polubienia: 108
Jeżeli można to zmieniać za pomocą eventu to prawdopodobnie przyda się do różnych scenariuszy - jadąc na różnych wysokościach będzie można wywoływać mgłę co doda realizmu dla jazdy np. o godzinie 5-6 rano. ;)

Offline firleju

  • Zasłużony dla Symulatora
  • Wiadomości: 1588
  • bawię się (w) exe...
    • Zobacz profil
  • Otrzymane polubienia: 120
Hej,

Popatrzyłem w kod i widzę:
iMultiTex < 0
Przypisanie do tablicy [-iMultiTex]. Mnie na matematyce zawsze uczyli, że "--" daje "+".
Skrypty do Blendera dostępne tutaj
W miarę aktualne wiki EXE wiki.eu07.es