Najlepiej jest zrobić własny model klawiatury, ale nie zawsze są możliwości czy chęć. Wtedy można posłużyć się zamiennikiem:
Jak to działa: Gdy zbliżymy się do keypada, pojawi się kursor "łapki" w miejsce celownika. Przyciski podświetlają się gdy je naciśniemy.
Jedna uwaga. Nie piszę tutaj jak zrobić mechanizm zamka kodowego (to macie tu), tylko jak zrobić stronę wizualną. Jakość tekstur zależy tylko od waszego pomysłu i umiejętności.
Będziemy potrzebowali 2 specjalne tekstury, więc do dzieła:
1. Tekstura z wieloma warstwami.
Poszczególne warstwy (w naszym przypadku tylko 2) będą przełączane bytem ENV_TEXTURETOGGLE.
Najpierw tworzymy 2 tekstury, dla klawiatury nieaktywnej i aktywnej:
Zapisujemy je w formacie .tga, w katalogu materialsrc (w katalogu Ep2) np: buttons001.tga, buttons002.tga. Bardzo ważne, żeby numery w nazwach zapisywać jako 001, 002, itd. Tekstura może być tak duża jak chcecie i tak w hammerze ją sobie zeskalujemy.
Oprócz tego tworzymy obok plik tekstowy o takiej samej nazwie jak główny człon nazw tekstur, czyli: buttons.txt. Piszemy w nim:
"startframe" "1"
"endframe" "2"
(W przypadku większej ilości warstw, trzeba wpisać odpowiednią liczbę w drugim polu)
Teraz lokalizujemy program vtex.exe. Jeśli pracujemy pod Orange Box'em (Ep2), to będzie w:
Przeciągnij tylko plik tekstowy na plik vtex.exe. Wyskoczy DOS'owe okienko, które zamkniemy. I już. W katalogu materials (w katalogu Ep2) powinniśmy zobaczyć twoją teksturę. (jeśli pliki .tga były inaczej numerowane, program vtex, może ich nie zobaczyć, stąd tak ważne jest nazewnictwo).
Umieść swoją nową teksturę, np w katalogu materials/custom. Mój plik nazwałem button.vtf.
Stwórz plik .vmt o tej samej nazwie co tekstura i umieść w nim taką treść:
Będzie wyświetlona na środku ekranu i zablokowana przed oczami gracza bytem ENV_SCREENOVERLAY. Taka nakładka na ekran.
Tworzymy obraz wielkości np, 1024x512 z przezroczystym tłem (taka szarobiała krata). Tu drobna uwaga. Taka wielkość jest użyta w modzie R&D. Może być inna, chodzi o to, żeby kursor nie był rozjechany na ekranach panoramicznych, ani za bardzo ściśnięty w formacie 4:3.
Po środku wklejamy nasz kursor, np: łapkę. Najlepiej jeśli kursor będzie czarno-biały i nie cieniowany (na pewno można też użyć takich, ale nie wiem, jakie są do tego potrzebne ustawienia tekstury). Nasza tektura ma format 2:1, więc na każdym ekranie będzie lekko rozciągnięta w górę. Żeby to zniwelować, można lekko "ścisnąć" kursor:
Dodajemy kanał alpha, wycinamy w nim kształt kursora.
Używając pluginu .vtf do Photoshopa (albo w każdy inny znany wam sposób) zapisujemy tekturę z takimi ustawieniami:
Oba pliki (u mnie: button_overlay.vmt i button_overlay.vtf) umieszczamy np, w katalogu materials/effects.
3. Klawiatura.
Tworzymy brush wielkości pojedynczego przycisku, zamieniamy w FUNC_BUTTON i pokrywamy naszą teksturą. Nazywamy button01. We flagach zaznaczamy: don't move, toggle i use activates. ustawiamy dźwięk, delay na 1 sek.
Teraz wstawiamy ENV_TEXTURETOGGLE. Nazywamy go button01textoggle, w target brush wpisujemy button01.
Pierwszy output, przełącza teksturę na 2 warstwę (zielona), drugi output, włącza z powrotem pierwszą warstwę. Mamy efekt zapalającego się na chwilę przycisku.
W ten sam sposób tworzymy pozostałe 8 przycisków, wraz ENV_TEXTURETOGGLE. Pamiętamy o odpowiednich nazwach, no i dopasowujemy odpowiednio teksturę. Ja swoją pomniejszyłem x0.12.
4. Uaktywnianie kursora.
W okolicy klawiaturki tworzymy brush, zamieniamy go na TRIGGER_MULTIPLE (albo TRIGGER_LOOK). Gdy gracz wejdzie w brush, kursor pojawi się na ekranie.
Wstawiamy byt ENV_SCREENOVERLAY. Nazwa: screenoverlay, Overlay Name 1 - effects/button_overlay (ściezka do naszego kursora).
Szachownica na górze to byty env_texturetoggle. Klawiaturę obudowałem jeszcze func_detailem. Druga szara kostka to byt POINT_SERVERCOMMAND. To jedna z opcji jakie można dodać. W chwili wejścia w trigger byt ten wyłącza celownik (crosshair 0), żeby nie przysłaniał kursora. Można też dodać blokadę na klawiaturę, która pozwoli nam ustalić z jakiej odległości można jej używać (najlepiej zgraną z pojawianiem się kursora).
Wszystkie dodatki, wraz z drzwiami i działającym kodem, znajdziecie na mapie przykładowej w załączniku. Kod to 1986. Znajdują się tam też wszystkie tekstury, które musicie skopiować (katalog materials), żeby wszystko działało.
falco: [cenzura] to międzynarodowy spisek mający na celu [cenzura], to wszystko wina [cenzura], musimy [cenzura]
raven22: Owszem, przyciąłem, bo padały takie głupkowate wypowiedzy, że aż wstyd :)
ghost: Rzeczywiście ktoś ocenzurował SB? No ładny kawałek wycięty... Co się tu dzieje? ;|
Dabu: Powinieneś zabrać się za trzeci testament.
Tracha: Albowiem oto Dabu. Syn marnotrawny który odszedł i musiał lecieć bo stara na obiad wołała ale powrócił, lognął się i zrespił. A potem wszyscy hucznie poszli jak na NoLifów przystało grać w Painta MP
tepcio23: tepcio się będzie czepiał jak zwykle...
Tracha: Czekasz aż ojciec wyjdzie uściska, da pierścień, sandały i zabije tuczone ciele? A co z wracającym z pola tepciem?
Dabu: Widzisz, jestem niczym piłeczka od ping-ponga!