zmiana koloru czcionki w dialogach 36935 87

O temacie

Autor pawbuj

Zaczęty 15.12.2014 roku

Wyświetleń 36935

Odpowiedzi 87

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
zmieniłem teksturę, która podmnienia kolor boxów dialogowych na te z Gothic 3. Niestety trzeba tez zmienić kolor czcionki,żeby stosownie to wyglądało. Funkcja zmiany koloru czcionki może być tylko wykonana za pomoca Ikarusa. Ja tego nie potrafię zrobić. Być może ktoś juz w swoim modzie realizowął podobny pomysł i może cos podpowiedzieć.
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

zmiana koloru czcionki w dialogach
#1 2014-12-15, 10:00(Ostatnia zmiana: 2014-12-15, 10:06)
Będziesz musiał zacząć od klasy MEM_Game., potem jej pola arrayview[] // tu wskaż odpowiedni element w tablicy, ja nie pamiętam wartości.
Potem tylko skakanie po klasach i ich polach, nic trudnego.

bgb

bgb

Użytkownicy
posty848
Propsy593
Profesjabrak
  • Użytkownicy
Próbowałeś po prostu zedytować kolor liter bezpośrednio w pliku tekstury? Np. FONT_DEFAULT-C.tex , jest też parę innych plików o podobnych nazwach, sprawdź je... Ja osobiście nigdy nie dociekałem, które są odpowiedzialne za wyświetlanie konkretnych czcionek w grze.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
chicken dzięki sprawdzę . ciekaw jestem jak trzeba to zaimplentowac .czy może wystarczy wywoływać przy ZS_Talk?
bgb - tak tego nie da się zrobić. zmienimy w ten sposób kolor czcionki i będzie ona w opisach itemów, wpisach w dzienniku etc.

 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Będziesz musiał to wywołać zaraz po pojawieniu się tekstu dialogowego.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Będziesz musiał to wywołać zaraz po pojawieniu się tekstu dialogowego.
czy o ten array chodzi?
enum oTGameDialogView
    {
        GAME_VIEW_SCREEN        ,
        GAME_VIEW_CONVERSATION  ,       
        GAME_VIEW_AMBIENT       ,       
        GAME_VIEW_CINEMA        ,       
        GAME_VIEW_CHOICE        ,
        GAME_VIEW_NOISE         ,
        GAME_VIEW_MAX
    }*/
   
    //Views sind Kanäle, über die die Engine
    //Informationen anzeigen kann.
    //Beispiel sind die normalen Dialoguntertitelboxen.
    var int array_view[GAME_VIEW_MAX];          //zCView*
    var int array_view_visible[GAME_VIEW_MAX];  //zBOOL
    var int array_view_enabled[GAME_VIEW_MAX];  //zBOOL
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

zmiana koloru czcionki w dialogach
#6 2014-12-15, 10:46(Ostatnia zmiana: 2014-12-15, 10:55)
Wartość GAME_VIEW_CONVERSATION.
Enum ma to do siebie, że każde kolejne pole ma wartość o 1 większą od poprzedniej.
Zaczyna od 0 w tym przypadku.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Wartość GAME_VIEW_CONVERSATION.
Enum ma to do siebie, że każde kolejne pole ma wartość o 1 większą od poprzedniej.
Zaczyna od 0.
co to jest te Enum?
dalej przechodę do zmiennej game_text z klasy zcview?
nie oczekuję, że ktoś za mnie to zrobi, ale jeżeli jest szansa to proszę o podpowiedź - inaczej się nie nauczę.

var int savegameManager;        //oCSavegameManager*       
    var int game_text;              //zCView*                           
    var int load_screen;            //zCView*                           
    var int save_screen;            //zCView*                           
    var int pause_screen;           //zCView*                           
    var int hpBar;                  //oCViewStatusBar*       
    var int swimBar;                //oCViewStatusBar*       
    var int manaBar;                //oCViewStatusBar*       
    var int focusBar;               //oCViewStatusBar*       
    var int showPlayerStatus;       //zBOOL           
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Cytuj
co to jest te Enum?
Typ wyliczeniowy
Cytuj
dalej przechodę do zmiennej game_text z klasy zcview?
Od razu przechodzisz do zCView, żadne game_text.
I tak sądzę, że Ci za dużo już mówię.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Cytuj
co to jest te Enum?
Typ wyliczeniowy
Cytuj
dalej przechodę do zmiennej game_text z klasy zcview?
Od razu przechodzisz do zCView, żadne game_text.
I tak sądzę, że Ci za dużo już mówię.
próbowałem w nast. sposób . niestety na Wogu nie ma poradnika do tegoCALL__thiscall(MEM_ReadInt(GAME_VIEW_CONVERSATION.zCView), zCView_SetFontColor_offset); 
 

Splash

Splash

Moderator
posty4213
Propsy3414
ProfesjaNierób
  • Moderator
Dlaczego łączysz wartość, która nawet nie jest parsowana z klasą zCView?
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

zmiana koloru czcionki w dialogach
#11 2014-12-15, 20:32(Ostatnia zmiana: 2014-12-15, 20:46)
W dodatku identyfikator GAME_VIEW_CONVERSATION nie istnieje, miałeś tylko jej wartość wpisać do tablicy array_view[].
I zCView jest klasą, a nie polem.
A na koniec dodam, że jeśli chciałbyś przypisać wartość, to musisz użyć funkcji MEM_WriteInt.
Prawie gotowiec.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
W dodatku identyfikator GAME_VIEW_CONVERSATION nie istnieje, miałeś tylko jej wartość wpisać do tablicy array_view[].
I zCView jest klasą, a nie polem.
A na koniec dodam, że jeśli chciałbyś przypisać wartość, to musisz użyć funkcji MEM_WriteInt.
Prawie gotowiec.
i tak nie bardzo wiem co z tym zrobić . to że ZCView to klasa to wiem.
 jest wąskie grono osób, które w ogóle nie bazowało na przykładach (głównie autorzy Ikarusa, Lego no i może Orc).

Co do samego rozwiązania, nie wiem czemu pomijamy klasę InfoManager (mamy zmienne font, color). Rozumiem, że idziemy w kierunku podobnym jak do przesuwania boxów dialogowych, które robiłeś, ale skąd pewność że to zadziała?

Przychodzi mi do głowy jeszcze opcja, aby font_default zmienić na kolorowy w przypadku inicjacji dialogu, a wrócić do pierwotnych przy zakońćzeniu. nawet jeżeli zadziałą, to text dla hero i opcje dialogowe będą zmienione. text dla npc zmieniamy jest już za pomocą funkcji w silniku, co może spodowować że będzie miał też nieco inny odcień, jeżeli zmienimy kolor bazowy. :/
 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Cytuj
Co do samego rozwiązania, nie wiem czemu pomijamy klasę InfoManager
Bo tak.
Cytuj
Rozumiem, że idziemy w kierunku podobnym jak do przesuwania boxów dialogowych, które robiłeś,
Nie.
Cytuj
 ale skąd pewność że to zadziała?
Zadziała jak napiszesz dobrze.

Wszystko masz w poprzednich postach, więcej nie podpowiem, tylko będę mówił, czy w dobrym kierunku zmierzasz

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
(MEM_ReadInt(MEM_Game.array_view[] )=1;
??

najpierw przypisanie
 

Splash

Splash

Moderator
posty4213
Propsy3414
ProfesjaNierób
  • Moderator
Funkcja MEM_ReadInt odczytuje wartość liczbową z podanego adresu. Do zmieniania wartości służy funkcja MEM_WriteInt.
 
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
Funkcja MEM_ReadInt odczytuje wartość liczbową z podanego adresu. Do zmieniania wartości służy funkcja MEM_WriteInt.
(MEM_WriteInt(MEM_Game.array_view[] )=1);poprawiłem mamy klasa.pole = wartośc, jak przechodzimy do kolejnego pola??
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Funkcja MEM_ReadInt odczytuje wartość liczbową z podanego adresu. Do zmieniania wartości służy funkcja MEM_WriteInt.
(MEM_WriteInt(MEM_Game.array_view[] )=1);poprawiłem mamy klasa.pole = wartośc, jak przechodzimy do kolejnego pola??

Sam nie ogarniam LeGo i próbuję się go nauczyć, ale samo zapisanie Twojego MEM_WriteInt() mi mówi, że nie ogarniasz podstawowych skryptów. Ja bym zrobił tak
MEM_WriteInt(MEM_Game.array_view[1]);ale i tak nie wiem, co chcesz przez to osiągnąć, bo moim zdaniem to nie ma sensu, ale nie wypowiadam się na ten temat, bo LeGo mnie morduje, LOL.
 
: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.

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio

chicken
RaveN Studio

zmiana koloru czcionki w dialogach
#18 2014-12-16, 16:40(Ostatnia zmiana: 2014-12-16, 16:52)
To akurat jest z Ikarusa :D
Cytuj
MEM_WriteInt(MEM_Game.array_view[1]);
Źle :P
Musisz pobrać dane tekstu z dialogu, a potem przypisać do jego koloru wartość za pomocą MEM_WriteInt.
Samo MEM_Game.array_view[1] nie wystarczy.
Bogdan Zwei dał Ci poprawnie wskazany element w tablicy.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
var zCView dialogcol; dialogcol = _^(MEM_Game.array_view[1])
MEM_WriteInt(_@(dialogcol.color), col);
nie wiem , próbuję jesli chodzi o dane textu z dialogu, tu mnie skierowałeś w pierwszej chwili
 


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