zmiana koloru czcionki w dialogach 35611 87

O temacie

Autor pawbuj

Zaczęty 15.12.2014 roku

Wyświetleń 35611

Odpowiedzi 87

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator
A nie można tak?
func void ChangeConversationColor ()
{
    var zCView view; view = MEM_PtrToInst (MEM_Game.array_view[0] || (MEM_Game.array_view[1] || (MEM_Game.array_view[2] || (MEM_Game.array_view[3]);
    var zCList list; list = MEM_PtrToInst (view.textLines_next);
    var zCViewText viewtext; viewtext = MEM_PtrToInst (list.data);

    if (viewtext.color != -256)
    {
    viewtext.color = kolor czcionki, gdy postać się wypowiada
    }
    else
    {
    viewtext.color = kolor czcionki, gdy npc się wypowiada
    };

    viewtext.colored = true;
};

Zakładam, że [1] to numery linii

To nie numery linii :P
enum oTGameDialogView
{
        GAME_VIEW_SCREEN        , //0
        GAME_VIEW_CONVERSATION  , //1
        GAME_VIEW_AMBIENT       , //2
        GAME_VIEW_CINEMA        , //3
        GAME_VIEW_CHOICE        , //4
        GAME_VIEW_NOISE         , //5
        GAME_VIEW_MAX //6
}

Btw. jeśli zamiast MEM_Game.array_view[0] wpiszesz MEM_Game.array_view[5], zmienisz kolor czcionki w okienkach pojawiających się na dole - smalltalki i kwestie wypowiadane przez postać. Ja na przykład zmieniłem z czerwonego na żółty :ok:
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!

kaczka
RaveN Studio

zmiana koloru czcionki w dialogach
#41 2015-03-17, 18:01(Ostatnia zmiana: 2015-03-17, 18:07)

        GAME_VIEW_CINEMA        , //3
Nie mam pojęcia dlaczego, ale od razu przyszedł mi na myśl mało znany mod do g1.. jakieś nołnejmy robili. To chyba był.. Czas Zapłaty  :lol2:

Swoją drogą to miałem w zamkniętym obszarze
/*
    enum oTGameDialogView
    {
        GAME_VIEW_SCREEN        , //0
        GAME_VIEW_CONVERSATION  , //1
        GAME_VIEW_AMBIENT       , //2
        GAME_VIEW_CINEMA        , //3
        GAME_VIEW_CHOICE        , //4
        GAME_VIEW_NOISE         , //5
        GAME_VIEW_MAX //6
    }
*/
A kiedy wywaliłem /* i */ to wywala błąd, że nie wie co to enum.  Jebneli się czy to miała być jakaś dopiska
 

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator
To tylko dopiska, a raczej typ wyliczeniowy jak to Chicken powiedział, dodany do skryptów w formie dopiski, by wiedzieć co do od czego jest.
Cytuj
Nie mam pojęcia dlaczego, ale od razu przyszedł mi na myśl mało znany mod do g1.. jakieś nołnejmy robili. To chyba był.. Czas Zapłaty 
Jak chcesz paseczków kinowych, to pobaw się zmiennymi cinemaScopeEnabled i cinemaScopeColor w klasie zCCamera :x Ork to jakoś dziwnie zrobił :F
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Jak chcesz paseczków kinowych, to pobaw się zmiennymi cinemaScopeEnabled i cinemaScopeColor w klasie zCCamera :x Ork to jakoś dziwnie zrobił :F
No i mam robotę :D
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Jak chcesz paseczków kinowych, to pobaw się zmiennymi cinemaScopeEnabled i cinemaScopeColor w klasie zCCamera :x Ork to jakoś dziwnie zrobił :F
No i mam robotę :D
To nie rozumiem czemu kazałeś mi się przyjrzeć tematowi.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!
Ja to zrobiłem tak, ale problem jest taki, że zmienia kolor tylko ostatniej linijki :F
func void ChangeConversationColor ()
{
    var zCView view; view = MEM_PtrToInst (MEM_Game.array_view[1]);
    var zCList list; list = MEM_PtrToInst (view.textLines_next);
    var zCViewText viewtext; viewtext = MEM_PtrToInst (list.data);

    if (viewtext.color != -256)
    {
    viewtext.color = kolor czcionki, gdy postać się wypowiada
    }
    else
    {
    viewtext.color = kolor czcionki, gdy npc się wypowiada
    };

    viewtext.colored = true;
};
Jeśli chcesz by zmieniało ci też pozostałe linijki, musisz stworzyć kolejne zmienne zCList zawierającą pole next wcześniejszej linii np.
var zCList list2; list2 = _^(list.next);
var zCList list3; list3 = _^(list2.next);
var zCList list4; list4 = _^(list3.next);
var zCList list5; list5 = _^(list4.next);
A później już powinieneś wiedzieć co z tym zrobić :D

Poniżej SS pokazujący że to działa  :ok:
Spoiler

 

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator
Cytuj
Jeśli chcesz by zmieniało ci też pozostałe linijki, musisz stworzyć kolejne zmienne zCList zawierającą pole next wcześniejszej linii np.
Mnie na tym nie zależy, bo zrobiłem to tylko z nudów. Ale i tak dzięki :D
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
a czy przy wyborze opcji dialogowej możemy także zmieniać kolor podświetlanego dialogu? ktoś może na taki pomysł wpadł?

rozumiem, że tego skryptu nie inicjujemy poprzez FrameFunc. mi po kilku wypowiedzianych kwestiach wywala do pulpitu.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
rozumiem, że tego skryptu nie inicjujemy poprzez FrameFunc. mi po kilku wypowiedzianych kwestiach wywala do pulpitu.

Dajesz po prostu do Startup.d w odpowiedniej linijce. Skrypt nadpisuje stary kolor na nowy.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!
rozumiem, że tego skryptu nie inicjujemy poprzez FrameFunc. mi po kilku wypowiedzianych kwestiach wywala do pulpitu.

Dajesz po prostu do Startup.d w odpowiedniej linijce. Skrypt nadpisuje stary kolor na nowy.
Kolory są resetowane co nowe okno, więc najlepiej to zrobić Hookiem albo Triggerem/FrameFunctions.
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
rozumiem, że tego skryptu nie inicjujemy poprzez FrameFunc. mi po kilku wypowiedzianych kwestiach wywala do pulpitu.

Dajesz po prostu do Startup.d w odpowiedniej linijce. Skrypt nadpisuje stary kolor na nowy.
Kolory są resetowane co nowe okno, więc najlepiej to zrobić Hookiem albo Triggerem/FrameFunctions.
@carelion - wielkie dzięki za pomoc! spróbuje hookiem
@Splash, mozesz napisać jak inicjowałeś u siebie? nie chodzi o gotowy schemat.

ponawiam prosbę odnośnie kolorowania wyłącznie nakierowanej opcji dialogowej - komus sie udało?
 

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator
W startupie : FF_Apply (ChangeConversationColor);
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Teraz przy lego wszystko lepiej inicjować z FF
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Teraz przy lego wszystko lepiej inicjować z FF
Spoko, już przenoszę wszystkie hooki.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Czytaj między wierszami :D!
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
W startupie : FF_Apply (ChangeConversationColor);

może cos pieprzę, ale u mnie na razie brak efektu   - mam Ikarusa 1.2  + Lego (przedost. wersję Chickena).

co oznacza niby ten warunek

if (viewtext.color != -256)
 

Splash

Splash

Moderator
posty4212
Propsy3414
ProfesjaNierób
  • Moderator
Mnie jakoś działa.


Cytuj
co oznacza niby ten warunek
if (viewtext.color != -256)
Cytuj
    if (viewtext.color != -256)
    {
    viewtext.color = kolor czcionki, gdy postać się wypowiada
    }
Domyślnie dla postaci jest -256, czyli biały, a dla npc żółty. Możesz oczywiście wywalić ten warunek, wtedy kolor będzie taki sam niezależnie od tego kto się wypowiada.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
tera rozumiem :/. sprawdzasz to na g2nk, niby nie powinno być różnicy.

ja mam tak
if (viewtext.color != -256)
    {
    viewtext.color = RGBAToZColor(255,255,255,255); //czerwony
    }
    else
    {
    viewtext.color = RGBAToZColor(255,255,255,255); //czerwony
    };

    viewtext.colored = true;
};[code]
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
(255,255,255,255) to biały =|
(255, 0,   0,   255) TO jest czerwony.
R     G     B    A - tak się kolory miesza, 256 w każdym da biały.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
zgadza się, tu był błąd, natomiast wtedy text na żółto powinien być na biało, a zmiany nie ma. może w g1 to tak nie zadziała.
 


0 użytkowników i 3 gości przegląda ten wątek.
0 użytkowników
Do góry