Wyśrodkowanie napisów w dialogu 5432 20

O temacie

Autor Siemekk

Zaczęty 6.04.2016 roku

Wyświetleń 5432

Odpowiedzi 20

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Siemka :D Otóż ostatnio próbuję ustawić choicebox'a i dialogboxa tak aby ładnie to wyglądało z CinemaScope. Samo przesunięcie jest prawie dobrze, poza dwoma problemami.
1) Choicebox jest na środku, ale chciałbym aby napisy się środkowały każdy tak jak na screenie... Zależne od ilości znaków (jeśli jest to możliwe- długi taki jak to z kradzieżą to dokładnie jak na screenie, a krótsze jak ten "Masz jakiś kłopot", lub "Koniec" Środkować)

2) Nie mam pojęcia jak zrobić aby na każdej rozdzielczości wyświetlał się na tej samej POY, bo POX zawsze jest dobrze, ale POY nie mam pojęcia jak ogarnąć :/ Szukałem w skryptach Czasu Zapłaty, ale wszystko co jest związane z choiceboxem jest w skrypcie pasków kinowych View_ptr = MEM_ReadInt(MEMINT_oCInformationManager_Address+28);
screen_y_size=MEM_ReadInt(View_ptr+76); //4c
screen_y_size=MEM_ReadInt(screen_y_size+68); //44
View_ptr = MEM_ReadInt(MEMINT_oCInformationManager_Address+28);
view_ptr = view_ptr+60;//
Tylko ptr są inne, i trochę się różni od tego skryptu choicebox'a Caleriona var int ChoiceBox_ptr; ChoiceBox_ptr = MEM_ReadInt(MEMINT_oCInformationManager_Address+28);
var int choicebox_posx;
 var int choicebox_posy;
//Pobieramy pozycje i rozmiar do zmiennych
choicebox_posx = MEM_ReadInt(ChoiceBox_ptr+56);// X pos
choicebox_posy = MEM_ReadInt(ChoiceBox_ptr+60);// Y pos
//Ustawiamy pozycje i rozmiar
MEM_WriteInt(ChoiceBox_ptr+56, 600); // X pos
MEM_WriteInt(ChoiceBox_ptr+60, poy); // y pos
Za pomoc z tym rozdam  :ok: pomocnym ludziom.
 

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

Finciakowski

Finciakowski

Użytkownicy
posty80
Propsy3
ProfesjaSkrypter
  • Użytkownicy
Wytłumacz tylko jaśniej o co ci chodzi XD
 
Mod będze wyglądał gdzieś tak ^^

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Osoby które znają się na Ikarusie i funkcjach gothica na pewno zrozumieją :ayfkm: ...
PoY ma byś PosY tak samo z PosX <--- literówki :f
 

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

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Ponawiam :F. Chodzi mi o pobieranie ilości znaków z inta. Sword1_Description = Print_Ext(PPoX,PPoY,"Bohater zna podstawy walki bronią !",PF_Font,RGBA(255,255,255,255),-1);
Chciałbym pobierać ilość znaków z Sword1_Description i innych zmiennych, a gdy np. ilość znaków będzie 12 to będzie inna pozycja gdy 13 to też inna (wiem że mogę do każdego robić oddzielne pozycje, ale po prostu tego jest za dużo :/ a tak napiszę funkcję która to obliczy :D )
 

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.
Jeśli chodzi o stringi:

Str_Len(text);
Jeśli text będzie zawierało "Gothic" to Str_Len() zwróci 6.
 
: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.

Splash

Splash

Moderator
posty4208
Propsy3410
ProfesjaNierób
  • Moderator
var int x; x = (PS_VMax - Print_ToVirtual(Print_GetStringWidth("Bohater zna podstawy walki bronią !", PF_Font), PS_X)) / 2;
 
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
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Dzięki Splash :D Działa. Takie pytanie czy mogę napisać skrypt który wyświetla to pobierając Inta:
func int blabla(var int hndl)
{
(PS_VMax - Print_ToVirtual(Print_GetStringWidth(hndl.text, PF_Font), PS_X)) /2;
};
I tak dalej, czyli xD
Sword3_Title=Print_Ext(blabla(Sword3_Title),PDoY,"Mistrzowska walka mieczem",PF_Font,RGBA(255,255,255,255),-1);
Czy muszę robić nowego printa (co by nie było trudne xD)
 

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

Splash

Splash

Moderator
posty4208
Propsy3410
ProfesjaNierób
  • Moderator
func int blabla (var int hndl)
{
    var zCViewText t; t = get (hndl);
    return (PS_VMax - Print_ToVirtual(Print_GetStringWidth(t.text, Print_GetFontName(t.font))), PS_X)) /2;
};
 
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
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Ok dzięki :D To ostatnie pytanie i temat leci do zamkniętych. Otóż jak mam zrobić, aby tekst dzielił się na 2 linie, ewentualnie 3 gdy ilość znaków jest duża (do opisów)
W głowie mojej to wygląda tak:(Nowy print do opisów)
func int llll(rgba itd)
{
var zCViewText myText; myText=get(odnosnik);
var int ilosc_znakow; ilosc_znakow = Str_Len(MyText.text);
if(ilosc_znaków >=20)
{
Co dalej :F?
};
};
Chyba coś z tego skryptu ma sens?
 

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

Splash

Splash

Moderator
posty4208
Propsy3410
ProfesjaNierób
  • Moderator
var string str1; str = STR_SubStr (MyText.text, 0, 20);
var string str2; st2 = STR_SubStr (MyText.text, 20, 40);
Print_Ext (pozycja x, pozycja y, str1, PF_Font, COL_White, -1);
Print_Ext (pozycja x, niżej, str2, PF_Font, COL_White, -1);
 
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
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Wypieprza brak ; w tym
return ((PS_VMax - Print_ToVirtual(Print_GetStringWidth(t.text, Print_GetFontName(t.font))), PS_X) /2);Mimo iż jest wszystko dobrze(z tego co widzę)
 

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.
Czasami trzeba niektóre funkcje dodać do zmiennych i potem do funkcji.
 
: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
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Ciągle wywala:
var int returnint; returnint=((PS_VMax - Print_ToVirtual(Print_GetStringWidth(t.text, Print_GetFontName(t.font))), PS_X) /2);Wszystkie przecinki są w porzo. Węc nie wiem o co chodzi:/
 

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.
Nie zrozumiałeś mnie.

var int x; x= Print_GetFontName(t.font);
var int y; y= Print_GetStringWidth(t.text, x));
((PS_VMax - Print_ToVirtual(y, PS_X) /2);
 
: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
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Błędu nie ma, ale ikarus crashuje przy pojawieniu się printa:
func int CentersMenu(var int hndl)
{
var zCViewText t; t = get(hndl);
var string a; a =Print_GetFontName(t.font);//to funkcja typu string
var int b; b = Print_GetStringWidth(t.text, a);
return (PS_VMax - Print_ToVirtual(b, PS_X)) /2;
};
I w skrypcie printa: CentersMenu(zmienna);
 

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.
Nie bardzo wiem jak cały twój skrypt wygląda. W sumie moim zdaniem lepiej by było pokombinować z tym (jeśli chodzi o zmianę pozycji choice):


class zCViewText2 {
    var int unknown;
     /* zCViewText text; */
        var int _vtbl;
       
        var int posx;
        var int posy;
       
        var string text;    //zSTRING //Die Entscheidende Eigenschaft.
        var int font;       //zCFont*
        var int timer;      //zREAL //übrige Zeit für PrintScreen anzeigen die nur eine bestimmte Zeit dauern?
        var int inPrintWin; //zBOOL //vermutlich für anzeigen mit "Print", die nach oben weggeschoben werden.
 
        var int color;      //zCOLOR
        var int timed;      //zBOOL
        var int colored;    //zBOOL     //klingt interessant. Vielleicht kann man hiermit was anfangen.
};
func void ChangeSelectionPosition () //per frame
{
var zCArray arr; arr = _^ (MEM_InformationMan.DlgChoice+172);

if (arr.array)
{
const int null = 0;
CALL__fastcall (MEM_InformationMan.DlgChoice, _@ (null), MEMINT_SwitchG1G2 (7705536, 6878528));
var zCViewText2 txt; txt = _^ (CALL_RetValAsPtr());
txt.posx = 2;
txt.posy = 2;
};
};
 
: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
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Teraz w zasadzie nie chodzi mi o choiceboxa, lecz o nowe menu statystyk które pisze.
Policzmy że mam ok. 30 buttonów i do każdego 2-3 teksty co daje ~80 tekstów
I do każdego robić kolejne zmienne? Więc chcę napisać funkcje która pobiera zmienną która jest równa Print_Ext();
I w niej zamiast pozycji X dać funkcję środkowania.
 

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.
Nie lepiej by to było zrobić na podstawie tablicy? Chodzi mi bardziej o zapisywanie do array'ów tak jak to jest na podstawie printów. Później byś tylko wyszukiwał na podstawie array_next i array_data. W sumie nie do końca Cię zrozumiałem, ale wydaje mi się, że nie da się zrobić tego tak jak ty chcesz. Niech ktoś mądrzejszy się wypowie.
 
: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
Propsy1153
ProfesjaProgramista
  • Złote Wrota
Jak bym mógł, to bym zrobił nowego printa ^^ Problem w tym, że gdy takiego zrobiłem to nie kasował się wraz z funkcją Print_Delete;
 

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.
Właśnie jest pewien błąd w Lego, gdzie Print_Delete w ogóle nie działa. Sam nie mogę wywalać printów kiedy mi się podoba. Anim8 przynajmniej dają radę.
 
: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.


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