[Zrób to sam!] PrintScreen jak w Czas Zapłaty w G2 4897 8

O temacie

Autor Bogdan Zwei

Zaczęty 30.05.2016 roku

Wyświetleń 4897

Odpowiedzi 8

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Nazwałem ten temat "Zrób to sam!" dlatego, że będzie to w 100% teoria, jak zrobić system powiadomień jak w Czasie Zapłaty.

Przejdźmy najpierw do wytłumaczenia, czym jest ten system powiadomień:
Ten system używa poboczną (pierwotną) klasę dialogów, które są w Gothicu. Klasa ta została wykasowana z okien dialogowych i zastąpiona nową, bardziej rozbudowaną, a tą przenieśli do Smalltalk, czyli okienek, które wyświetlają się jak dwa npc rozmawiają ze sobą (czyli jest rozmowa pomiędzy dwoma npc, ale żaden z nich to nie hero). Jako tako, ta klasa nie jest używana (wcale). Twórcy postanowili przerobić Smalltalk i dodali ją do klasy dialogowej, która jest obecnie używana, a tą starą zostawili jako "relikwię". Relikwia (klasa) ta była zbyt mała, przez co dialogi mogły mieć tylko dwie linie, dlatego też ją rozbudowali.

Oto jak pierwotna klasa dialogów wyglądała:

class DialogBoxClass
{
var int MsgAlpha;
var int TextMove;
var int ViewMove;
var int MsgView;
var int Text;
var int FirstLine;
var int SecondLine;
var int time;
};

Jak widać, jest strasznie mała, idealna na system powiadomień (zdaje mi się, że Print() używa tej klasy). W Czasie Zapłaty postanowili ją "ożywić" i ulepszyć, robiąc nowy system powiadomień (PrintScreen). Klasa różni się pomiędzy dwoma Gothic'ami (chyba tylko nazwami zmiennych). Żeby zrobić podobny system powiadomień, trzeba użyć pakietu Anim8, View oraz Interface.

Przejdźmy do opisania, jak co ma wyglądać:

class DialogBoxClass
{
var int MsgAlpha; // Anim8(h) Alpha
var int TextMove; // Anim8(h) Text position
var int ViewMove; // Anim8(h) View position
var int MsgView; // Anim8(h) View
var int Text; // PrintScreen
var int FirstLine; // Print separator
var int SecondLine; // Print separator
var int time; // View Duration
};
instance DialogBoxClass@(DialogBoxClass);

MsgAlpha to animacja alfy całego powiadomienia (Print + View).
TextMove to animacja napisu (przemieszczanie się informacji).
ViewMove to animacja boxa dialogowego (informacyjnego).
MsgView to po prostu View.
Text to po prostu PrintScreen w postaci int (czyli tutaj musicie użyć PrintScreen z Lego).
First i SecondLine to linie. Linia pierwsza chyba musi być wypełniona, druga nie musi.
time to czas działania tej informacji (pierwotnie - dialogu).

DialogBoxClass@ jest użyte jako pointer w późniejszym skrypcie, gdzie wypełniamy naszą nową zmienną DialogBoxClass.


To chyba na tyle. Jak widać klasa jest idealnie rozbudowana, żeby zrobić takie cudo jak w CZ. Teraz starczy tylko pobawić się trochę całą klasą i utworzyć nowy system powiadomień. Wydaje mi się, że da radę także przypisać do tej klasy cały system dialogowy, ale nie jestem co do tego pewien, może wywalić parę błędów, albo w ogóle nie reagować na tę klasę, jeśli jednak by załapało, nie pójdzie manipulować całym dialogiem, lecz tylko jego częścią.


Jak w każdych moich tutorialach i "tutorialach", nie pozwalam na kopiowanie.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Można też napisać własną klasę D: . Największym problemem jest poruszanie się box'a, sam robiłem ten system, ale ciągle go nie skończyłem przez tego boxa :F . Wpadłeś może na jakiś pomysł, klasa zCView nie reaguje, wszelkie calle kończą się crashami :F Jak ork to zrobił pozostaje zagadką xD
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Lehona kiedyś powiedział mi jak sprawić aby tekst był nad naszym View...
ViewPtr_Top(MEM_Game.array_view[0]);
I to wszystko :D
Ale co do ruchu box'a to dalej nie wiem co i jak xD
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Albo można też użyć funkcji View_AddText :|
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
W moim wypadku było to niemożliwe. Box nie chciał się ruszyć, więc użyłem Print_Ext aby zrobić przesuwanie dzięki Anim8.

@Splash sorki że pytam, ale nie wiesz jakim pakietem w LeGo dało by się napisać do tego Manager'a ?
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Daje tutaj pół gotowca :I Brakuje działającego managera, obecny coś crashuje. Jeśli ktoś ma wiedze i chce taki efekt to sobie naprawi:
Klik
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Chuj mode activated.

Żywcem zajebane z CZ. :F Tylko przekonwertowane na G2.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Kłamczysz :F
Użyłem Anim8, klasę wziąłem bo pozwala zmieniać kolor. A dzielenie tekstu... to tak :F
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.


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