|
|
| |
| ZASOBY |
| |
| |
|
|
|
| |
|
| NASZ BUTTON |
|
|
| |
|
|
| |
|
| |
|
TUTORIALE - MAPPING
|
[ Dodaj ]
|
|
Team Fortress 2 - Mapa Control Point & jej podstawy.
| [ 2008-10-14 14:01:21 Dodał:
MoonBlaze Wyświetleń: 1776 Komentarzy: 8 ]
|
|
W tym tutorialu chcę wam pokazać jak stworzyć najprostszą mapę cp (Control Point). Między innymi możemy się dowiedzieć jak wykonać pozostałe czynności jak Ustawianie czasu "instalacji gry" bądź nawet stworzenie szafki z amunicją i zdrowiem. Podstawowe elementy gry będę pokazywał względem drużyny BLUE.
***
Wszystkie byty (podstawowe) jakie wykorzystamy na naszej mapie:
- Minimum 2 byty math_counter, które wykorzystamy do obliczeń wygranych rund, które zakończą mapę.
- team_control_point_master
- team_round_timer
- Jak wiadomo byt light_environment
- game_round_win
- game_end
- I oczywiście triggery
Krok Pierwszy
Respawn:
Biorąc pod uwagę, że mamy już stworzony całokształt mapy bądź pomieszczenie/a gry
(http://sourcesdk.pl/tut,mapping,13.html) wstawiamy byt info_player_teamspawn. W ustawieniach bytu:
Name: Można podać jeżeli ktoś chce stworzyć wydarzenie oparte na tym bycie.
Team: Ustawiamy drużynę, która będzie się odradzać w tym punkcie. Ja jak pisałem wyżej wybieram "Blue".
Associated Control Point: Tutaj podajemy Punkt Kontrolny, który po przejęciu odblokowuje nam respawn. W moim przypadku gdzie są tylko 2 punkty kontrolne nie wpisuję nic.
Blue/Red spawn for round: Tutaj wpisujemy końcowy punkt (zwycięski), ktory odblokowywuje nam respawn w nowej rundzie tak jak jest to na goldrush. Ja zostawiam puste, gdyż mapa, którą pokazuje nie jest podzielona na rundy. |
Gdy mamy już umieszczony/e respawn graczy wstawimy do gry szafkę z wyposarzeniem. Wstawiamy byt prop_dynamic (musi być dynamic aby nasza szafka mogła być animowana) i wybieramy jej model:
models/props_gameplay/resupply_locker.mdl. Następnie podajemy jej nazwę "reg_blue". Przy szafce tworzymy bryłę, którą przekształcamy w byt func_regenerate. W opcjach bytu:
Name: Można podać jeżeli ktoś chce stworzyć wydarzenie oparte na tym bycie.
Team: Wybieramy drużynę, dla której wyposażenie będzie dostępne. Ja wybieram BLUE .
Associated Model: Podajemy nasz model szafki, który będzie się animował po wejściu w func_regenerate. W tym wypadku "reg_blue". |
Mamy już punkt odradzania i szafkę z wyposażeniem. Został nam już tylko ost. byt func_respawnroom. Byt ten określa teren znajdującego się respawnu drużyny. Jest on wykorzystywany między innymi do zmieniania klas gracza bez jego śmierci, a więc tworzymy bryłę, która powinna otaczać cały teren respawnu i zamieniamy go w byt func_respawnroom. W jego opcjach podajemy tylko drużynę, którą obejmuje wyznaczony teren. I to już wszystko co dotyczy respawnu. Postaram się zrobić tutorial, który będzie obejmował dodatkowe obiekty typu: drzwi, niewidoczna ściana blokująca przeciwników oraz blokada stawiania urządzeń przez inżyniera. Całokształt naszego respawnu może wyglądać tak:
Krok Drugi
Punkty Kontrolne
Teraz przed nami jest jedna z trudniejszych spraw, a mianowicie punkty kontrolne. Żeby nie owijać w bawełnę od razu przechodzę do tłumaczenia.
Wstawiamy model podstawy punktu: models/props_gameplay/cap_point_base.mdl. Nadajemy mu nazwę: "control_basep_blue" i ustawiamy "skórkę" (Skin) nr.2.
( UWAGA! Drużyna Niebieska ma zawsze numer 2,a drużyna czerwona 1!!!)
Podstawa punktu jest załatwiona. Teraz należy wstawić wskaźnik holograficzny wskazujący, która drużyna posiada punkt. W środek podstawy wstawiamy byt team_control_point. W opcjach bytu:
Name: Wstawiamy nazwę bytu: "control_point_blue"
Default Owner: Tutaj wybieramy drużynę, która automatycznie będzie w posiadaniu tego punktu. Możemy ustawić aby punkt nie był przejęty. Wybieramy BLUE.
Index: Numer punktu kontrolnego. Nadajemy mu numer "1" i tak pokolei.(UWAGA! PUNKTY NIE MOGĄ SIĘ POWTARZAĆ!)
|
To były najważniejsze ustawienia punktów. Reszta ustawień są to opcje dodatkowe. Punkt kontrolny powinien wyglądać tak:
Teraz przy punkcie kontrolnym należy wstawić teren, w którym punkt będzie przejmowany. Tworzymy bryłę i zamieniamy ją w byt trigger_capture_area. W opcjach bytu:
Name: Podajemy nazwę bytu: "trigger_capture_area_blue"
Control Point: Wpisujemy nazwę wskaźnika holograficznego: "control_point_blue"
Can RED/BLUE Cap?: Nasz program pyta sie, która drużyna może go przejmować. Pierwszy sposób jest taki, że gdy przeciwnik przejmie nasz punkt kontrolny nasza drużyna nie może go z powrotem przejąć, a drugi to taki, że drużyny mogą stale przejmować punkt kontrolny. Wybieramy funkcje YES w obydwu polach.
Number of RED/BLUE Players to cap: Podajemy minimalną ilość graczy potrzebnych do przejęcia punktu. W naszym przypadku 1
Time to cap: Wpisujemy w sekundach jak długo punkt kontrolny będzie przejmowany. |
Teraz zakładka bytu Outputs:
Dodajemy nowe wydarzenia:
OnCapTeam1-> control_basep_blue-> Skin-> 1
OnCapTeam2-> control_basep_blue-> Skin-> 2
OnEndCap-> relay_adding_time-> Trigger |
Byt trigger_capture_area jest już skończony i powinien wyglądać tak:
Krok Trzeci
Zaawansowane byty:
Pierwszy byt jaki wstawimy to game_round_win. W tym bycie możemy ustawić co ma się wydarzyć gdy czas gry dobiegnie końca, a żadna drużyna nie zdobędzie wszystkich punktów kontrolnych. W opcjach bytu:
Name: Podajemy nazwę bytu: "game_round_win"
Team: Wybieramy drużynę, która wygrywa po "nie przejęciu" ustalonego punktu kontrolnego, lecz teraz wybierzemy None (Sudden Death). Czyli po przegranej rundzie (remis/pat) zacznie się nagła śmierć.
Force Map Reset: Gdy runda się skończy na mapie wszystko wróci do poprzedniego stanu (taki jakby reset ). Wybieramy Yes.
(Nie powinno się dawać Yes w przypadku, gdy mapa jest podzielona na części.)
Switch teams on map win?: Wybieramy czy po ukończonej rundzie nastąpi zmiana drużyn. Wybieramy Yes. |
Następny byt odgrywający kluczową rolę to team_round_timer. Byt ten mierzy czas gry i uruchamia byt game_round_win. Tutaj możemy także ustawić ile czasu dodatkowego gra doda drużynie, która właśnie przejęła punkt kontrolny. W opcjach bytu:
Name: Podajemy nazwę bytu: "team_round_timer"
Timer Length: Początkowy czas gry na przejęcie 1 punktu kontrolnego. (Za każdy następny przejęty punkt do gry zostanie dodana wyznaczona ilość czasu przez logic_relay [patrz trigger_capture_area]). My damy czas 360.
Start Paused: Damy No. Ta opcja wyznacza czy zegar na starcie ma być zatrzymany. Wtedy musimy go uruchomić przez jakikolwiek trigger.
Setup timer Length: Żeby było inaczej niż w większości mapach wpiszemy 15. Jest to opcja, która wyznacza długość instalacji gry.
Reset time on round restart: Wybieramy Yes. Opcja, która resetuje czas, gdy zacznie się nowa runda.
User countdown sounds: Jak nazwa wskazuje. Jeżeli czas zostanie dodany uruchomi się standardowy dźwięk.
Show timer in the HUD: Czy zegar rundy będzie pokazywany u góry ekranu. |
W zakładkach bytu wpiszemy:
OnFinished-> game_round_win-> RoundWin.
To uruchomi nam wcześniej ustawiony Sudden Death. (Tylko wtedy, gdy punkty nie zostaną przejęte). Teraz dodamy byt logic_relay, który będzie dodawał nam czas za przejęcie punktu kontrolnego. A więc, wstawiamy byt i w jego opcjach wpisujemy nazwę: "relay_adding_time", a w zakładce outputs:
OnTrigger-> team_round_timer-> AddTime-> 300
I gotowe. Następnym ważnym bytem jest team_control_point_master. Byt będzie dodawał 1 punkt do math_counterów za wygraną rundę, które po uzyskanej ilości punktów zakończą mapę. W opcjach bytu:
Name: Wpisujemy nazwę: "team_control_point_master"
Cap layout: Opcja, która rozmieszcza ikonki przejętych punktów kontrolnych. Jeżeli zostawimy puste pole ikonki będą rozmieszczone standardowo czyli pokolei w poziomie. Możemy użyć także piramidę (ułożone w pionie) wpisując "2,0 1"
Restrict team from winning: Tutaj można wybrać drużynę, która się broni i nie może z powrotem przejąć punktów kontrolnych. Dajmy "Neither".
Switch Teams on map win?: Czy, po ukończonej rundzie drużyny zostaną zmienione. Wybierzmy Yes.
Scoring Style: Funkcja, która umożliwia wybranie typu dodawania punktów. Np.: Dostajemy 1 punkt, gdy wygramy rundę lub za każdy przejęty punkt kontrolny dostajemy 1 punkt. Wybierzmy "Add team score for each round won". |
W zakładkach dodajmy 2 wydarzenia:
OnWonByTeam2-> math_counter_blue-> Add-> 1
OnWonByTeam1-> math_counter_red-> Add-> 1
Teraz dodajmy 2 math_countery, które będą obliczać wygrane rundy. (zasady działania math_countera tutaj:http://sourcesdk.pl/tut,mapping,96.html
Wstawmy je i przejdźmy do opcji:
Name: Dajmy nazwę: "math_counter_blue" (w drugim bycie robimy to samo tylko zmieniamy z blue na red)
Maximum Legal Value: Wpisujemy 3 (do 3 wygranych rund). |
W zakładkach outputs wpisujemy:
OnHitMax-> end_game-> EndGame
(Przypominam Wszystko to robimy także w 2 math_counterze tylko zmieniamy z bule na red)
Teraz już zostaje ost. rzecz czyli byt game_end. Byt będzie zakończał mapę. Dajmy mu nazwę end_game.
To już wszystko. Punkt kontrolny dla drużyny RED pbędzie wyglądał tak samo jak w drużynie BLUE. Teraz mapa powinna działać i dokładnie liczyć punkty. W razie problemów zamieszczam małą mapę:
DOŁĄCZONE PLIKI: SDK_MAPY_CP.ZIP ( 237 KB )
|
|
|
| |
| KOMENTARZE |
|
|
|
Dobra robota, zawsze szukałem polskich tutków do tf2 |
| |
| [ 2008-10-14 16:37:00 Dodał:
Mopper ]
|
|
|
łał nowy tutek |
| |
|
|
Nowy tutorial, to chyba SEN .
Gratz. |
| |
| [ 2008-10-15 23:47:06 Dodał:
GAStome ]
|
|
|
|
Żaden SEN, tylko CREWE |
| |
|
|
Nareszcie pomocny tutorial dotyczący TF'a. Oby więcej takich . |
| |
|
|
OnWonByTeam1-> math_counter_blue-> Add-> 1
OnWonByTeam1-> math_counter_red-> Add-> 1
Czy nie powinno być tak:
OnWonByTeam1-> math_counter_red-> Add-> 1
OnWonByTeam2-> math_counter_blue-> Add-> 1
? |
| |
|
|
Racja. Dzięki za zgłoszenie błędu. Sprawdzałem 5 razy czy wszystko jest dobrze, a i tak przeoczyłem to. No cóż, łatwo idzie coś przeoczyć. |
| |
| [ 2009-11-04 18:24:16 Dodał:
Hooch ]
|
|
|
Najtrudniej jest sprawdzać po sobie. Jak to mówi Pani Profesor z Matematyki.
Super tutek. |
|
|
|
|
|
| |
|
|
| |
| SHOUTBOX |
|
Tracha: Royal Sperm <3 |
|
MoonBlaze: uwaga wirus |
|
Elektryk: Link |
|
MoonBlaze: btw to nie wiedziałem, że tusk i palikot są razem, po palicocie bym się spodziewał, ale po matole to nie :( |
|
pulka103: Ja was też <3 moi mili ; *** |
|
MoonBlaze: ty prowokancie ;* |
|
Dabu: Tusk i Palikot <3 |
|
Tracha: Link Yep |
|
MoonBlaze: &Palicot |
|
Tracha: Fuck Tusk |
|
| |
|
|
|