Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Call of Duty] Let's Mod! MENU, UI.


kaje11

Rekomendowane odpowiedzi

Opublikowano

ceb88bc8ab.png

 

Pierwsza część

Dzisiaj zajmiemy się edycją plików menu.

CO ZOSTANIE UŻYTE W PORADNIKU:

  • WinRAR
  • 7zip
  • DDS Converter 2.1
  • Notatnik lub Notepad++


Zaczynamy!

LOKALIZACJA PLIKÓW MENU:
Wszystkie użyte pliki menu w grze znajdziemy w archiwach w folderze main:

  • pak0.pk3 (wersja 1.1)
  • pak8.pk3 (wersja 1.2)*
  • pak9.pk3 (wersja 1.3)*
  • paka.pk3 (wersja 1.4)*
  • pakb.pk3 (wersja 1.5)*
  • localized_polish_pak0.pk3 (wersja 1.1)
  • localized_polish_pak3.pk3 (wersja 1.5)*

* oznaczone pliki gwiazdką zawierają najczęściej aktualizacje wersji poprzedniej, wszystkie podstawowe menu znajdziemy w pak0.pk3.

Według poprzedniej części, dowiedzieliśmy się, że po otwarciu archiwum, pliki .menu będą w folderach:

  • ui_mp [MULTIPLAYER poza grą]
  • ui_mp/scriptmenus [MULTIPLAYER w grze]
  • ui [sINGLEPLAYER]

PRZYGOTOWANIE:
W tej części zajmiemy się modyfikowaniem głównego menu Multiplayer, ukazywanego zaraz po otwarciu gry. Jako mały sprawdzian wiedzy z poprzedniego poradnika i powyższego podpunktu, spróbujcie sami zgadnąć, gdzie możecie go znaleźć. Jeżeli nic wam nie świta.. no cóż, albo przeczytajcie jeszcze raz, albo zerknijcie do spoilera:

pak0.pk3 dla wersji 1.1 i pak8.pk3 dla wersji 1.2, folder ui_mp

To nie wszystko.
Jeszcze jedna szansa na wykazanie się! Pamiętaj, nazwy plików są anglojęzyczne, jakby mogło nazywać się 'menu główne'?

main.menu




Jeżeli sami znaleźliście swoje menu, to świetlana przyszłość przed Wami :)

Plik musimy wypakować. Zaznaczmy go w naszym archiwum i naciśnijmy kombinację CTRL + C i wklejmy do folderu main/ (CTRL + V). Możemy już zamknąć nasze archiwum.
Ustalmy teraz domyślny program dla otwierania menu. Kliknijcie prawym na plik, potem Otwórz za pomocą (na obrazku na samym dole):
a82546af18.png

Wybieramy nasz program i zaznaczamy opcję:
e6e2ed7d6c.png

Na końcu zatwierdzamy przyciskiem OK. Teraz edycja będzie o wiele wygodniejsza.



Tworzymy teraz swój plik .pk3, w którym będziemy pracować:

  • Prawy przycisk myszy > Nowy > Archiwum WinRaRa (.zip) (lub też 7zipem w programie).
  • Zmieniamy nazwę na z_menu.pk3
  • Robimy tak samo jak z plikiem .menu dla plików .pk3, lecz wybieramy WinRaR (czy też 7zip)
  • Otwieramy plik .pk3 i tworzymy folder ui_mp (PPM - Nowy folder)
  • Wklejamy do folderu ui_mp nasz plik main.menu (CTRL + C, CTR+ V).

WYJAŚNIENIE:
Teraz najtrudniejsza część, czyli nauka języka skryptowego .menu.
Ukażę opis menu dla wersji 1.2 (niewiele się różni od 1.1):

KOMENTARZE:
57de5dd294.png

3086bf52c5.png

c59e80822b.png


Wszystkie ciągu znaków oznaczone na ZIELONO, to KOMENTARZE, których gra nie czyta. Są one wskazówkami dla osoby, która coś dodawała i miałaby w przyszłości coś zmieniać.
//KOMENTARZ - wszystko na prawo od znaków // w danej linii
/*KOMENTARZ*/ - wszystko pomiędzy znakami /*, a */ w dowolnym odstępie

ZAŁĄCZNIKI
ce41dfba66.png
Inaczej: #załącz "interfejsy użytkownika/definicja menu.h"

a4bf777f86.png
Inaczej: #załącz "interfejsy użytkownika MP/tło_menu.menu"

Załączniki do bardzo przydatna funkcja, jest to odpowiednik include( $file ); w php, czy #include w C++, autoit i innych.
Używa się ich, aby znacząco ukrócić długość menu, bądź też ustalić dane stałe wartości (o tym w 'ciekawostki') dla wszystkich menu.
Przykładowo - identyczne tło dla wielu menu - użyto do tego menu_background.menu. Można też szybciej je zlokalizować, więc też edytować.
menudef.h jest nagłówkiem (header), który ustala DEFINICJE menu, takie jak nazwa czcionki itd.

STRUKTURA
022d4f330e.png

Przyjrzyjcie się temu i main.menu. Podobne prawda? :>
Pamiętajcie o klamrach, one są najważniejsze. Strukturę trzeba niestety zrozumieć, nie da się tego łatwo opisać.
Waszym kluczem do sukcesu jest używanie itemDef (ELEMENTÓW), reszta na początku was nie powinna interesować.


Zanalizujmy pierwszy itemDef z main.menu:
dcc75443ba.png

Jeszcze jakiś losowy:
b7957730fd.png

RECT - POŁOŻENIE:

Maksymalna szerokość i położenie w poziomie: 640*
Maksymalna wysokość i położenie w pionie: 480*
Minimalna wysokość etc.: 0*


*można korzystać z większych/mniejszych wartości niż max/min, lecz będą one poza polem widzenia.


Pierwsza wartość: 0 [POŁOŻENIE W POZIOMIE OD LEWEJ] czyli "przyklejone" do lewej strony menu.
Druga wartość: 2 [POŁOŻENIE W PIONIE OD GÓRY] czyli zaraz przy górze menu.
Trzecia wartość: 235 [sZEROKOŚĆ] czyli ok. 1/3 ekranu (640).
Czwarta wartość: 135 [WYSOKOŚĆ] czyli ok. 1/3 ekranu (480).

RECT [X, Y, SZ.X, SZ.Y]

KOLOR (RGB):

Maksymalna wartość: 1
Minimalna wartość: 0

Pierwsza wartość: CZERWONY
Druga wartość: ZIELONY
Trzecia wartość: NIEBIESKI
Czwarta wartość PRZEZROCZYSTOŚĆ

Jeżeli chcemy wybrać sobie jakiś własny kolor, to generujemy z palety (np. tej na mpcforum), czy też szukamy go w google, przykładowo: "FIOLETOWY RGB". Musimy po prostu dostać coś w tym stylu:
RGB (184, 3, 255).
Aby to przekształcić na wartości dla .menu, musimy każdą liczbę podzielić przez 255 i zaokrąglić do powiedzmy 2 miejsc po przecinku. Wyjdzie nam coś takiego:
RGB (0.72, 0.01, 1)

A w praktyce przykładowo:
foreColor 0.72 0.01 1 1

POŁOŻENIE TEKSTU (textalign)

Wartości:
0 - od lewej
1 - po środku
2 - z prawej


EDYCJA MENU:

Znajdźmy sobie jakieś tło (wymiary zależne od rozdzielczości, powyżej 1024 w poziomie na pewno). Oto moje:

http://puu.sh/3UwWK/dcd89bc0f1.jpg

 

Oraz jakieś logo, oto moje (powinno być szerokości tła):

http://puu.sh/3XNG0/7dd6037b5d.png

Musimy je teraz przekształcić, do tego użyjemy poprzedniego poradnika:

http://www.mpcforum.pl/topic/1016650-poradnik-lets-mod-wlasne-obrazy-mini-tut/

 

Po uzyskaniu plików .dds kopiujemy je do naszego archiwum .pk3 do folderu "ui_mp/assets/" pod nazwą 'tlo.dds' i 'logo.dds', potem wracamy do naszego .menu.

 

Znajdujemy tą linijkę i usuwamy, nie chcemy starego tła:

3d024b0726.png

 

 

Teraz trzeba dodać własne. UWAGA:

ELEMENT ZNAJDUJĄCY SIĘ NAJNIŻEJ W KODZIE MENU BĘDZIE WYŚWIETLANY NA NAJWYŻSZEJ WARSTWIE.

 

Oznacza to, że nasze tło będzie u samej góry. Będziemy pisać w tym samym miejscu, w którym załączaliśmy menu:

Najpierw TŁO. Jak wcześniej opisywałem, maksymalna szerokość to 640 i wysokość 480, takie wymiary będzie miało nasze tło.

Tworzymy element tła:

		itemDef //ELEMENT
		{
			rect 0 0 640 480
			style WINDOW_STYLE_SHADER //Element będzie obrazem
			background "ui_mp/assets/tlo.dds" //Ścieżka do tła
			visible 1 //Pokazywać TAK/NIE
			decoration //Dekoracja, element statyczny.
		}

 

 

 

Wklejamy go do kodu, teraz dodamy elegancki czarny półprzezroczysty pasek, który będzie leżał za logo:

 

		itemDef 
		{
			rect 0 30 640 100
			style WINDOW_STYLE_FILLED //Używamy tego stylu, gdy chcemy dodać czworokąt z tłem.
			backcolor 0 0 0 .8
			visible 1
			decoration
		}

 

 

RECT 0 30 640 100

 

Dla danej wartości, pasek będzie:

0 - stykał się z lewym bokiem

30 - trochę poniżej górnego boku

640 - na całą szerokość ekranu

100 - na ~1/6 ekranu

 

BACKCOLOR 0 0 0 .8

 

0 0 0 - czarny

.8, czyli osiem dziesiątych, pasek będzie trochę przezroczysty

 

 

Możecie według woli zmieniać tło, dla sprawdzenia czy uważaliście - zmieńcie go na niebieski kolor i dajcie półprzezroczystość :)

 

 

Teraz logo:

		itemDef 
		{
			rect 160 20 320 130
			style WINDOW_STYLE_SHADER
			background "ui_mp/assets/logo.dds"
			visible 1
			decoration
		}

 

Jak widać bardzo podobne do tła.. tylko skąd te wymiary (RECT)? Trzeba tutaj się wysilić.. przeczytajcie parę razy, najwyżej popytajcie poniżej :)

 

160:

Szerokość (X) całego 'ekranu' (pola manewru) = 640
Więc łopatologicznie połowa tej wartości = 320
Chciałbym, aby moje logo obejmowało połowę szerokości ekranu = 320
A obrazek można niestety tylko umieszać od lewej do prawej, nie można centrować..
Co zrobić?
Trzeba znaleźć połowę szerokości obrazka = 160
Odjąć ją od pozycji gdzie chcę dodać wycentrowany obrazek, 320 - 160 = 160
Czyli mam pierwszą wartość "na jakiej szerokości", czyli 160.
20:
Logicznie rzecz biorąc - trzeba użyć tutaj wysokości czarnego paska..
Jednak moje logo ma trochę wolnego miejsca u góry i na dole, więc na oko odjąłem 10.
Pasuje idealnie o czym przekonacie się za chwilę.
320:
Tak jak wyżej wspomniałem, chcę aby moje logo zajmowało połowę ekranu, czyli 640 / 2 = 320.
130:
Znowu.. mój obrazek jest pusty na spodzie, więc dodałem trochę od siebie, powinno być 100, jeżeli dobrze odmierzyliście.
Dobra. Zapisujemy i wchodzimy w grę... i? Działa? To dobrze :) Jeszcze dodamy małe zmiany, czyli przeniesienie tekstów w menu na lewą stronę:
To będzie bardzo łatwe, ponieważ wszystkie elementy tekstowe są na jednej szerokości, czyli:
2296548c72.png
385. Zautomatyzujemy nasz cel, czyli przeniesienie go bliżej lewej strony. Jak pamiętamy, im bliżej zera, tym bliżej naszej lewej.
Tutaj według uznania, ja wybrałem szerokość 65. Co robimy?
CTRL + H (zamiana), wklepujemy: "rect 385" i niżej "rect 65"
43dcd9c96d.png
Klikamy Zamień Wszystko (praktycznie wszędzie jest ta opcja).
VOILA!
Wchodzimy w grę.. i co widzimy? Ja to:
http://puu.sh/3XRwV/e6a76f8ec3.jpg

 

Tutaj moje menu:

http://puu.sh/3XP6u/87be039751.pk3 
https://www.virustotal.com/pl/file/4032433660fd0ff047afd71aeb999fab7090111c7a11360477aca76c44626ee6/analysis/1376072207/ 

 

W razie pytań.. pytać! Postaram uzupełnić wszystkie indeksy w jak najbliższym czasie (menudef.h).

WSZYSTKIE PLIKI W CHMURZE DLA MPCFORUM ZOSTAŁY USUNIĘTE. NIE KORZYSTAĆ Z MOICH PROGRAMÓW.

Proszę nie ingerować w moje posty/tematy, w razie potrzeby usunąć całą zawartość. Nie pomagam.

  • Aive zmienił(a) tytuł na [Call of Duty] Let's Mod! MENU, UI.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...