Czyli jak zrobić, aby za każdym razem gdy odpalimy mapę, określony obiekt pojawił się w innym, losowo wybranym miejscu, a po przyniesieniu w miejsce docelowe "przykleił się" i tam został.
Dobrym przykładem jest mapa zm_docksofthedead w modzie Zombie Master. Gracze muszą odnaleźć porozrzucane po mapie obiekty i zamontować je w samochodzie.
Jest to również dobry sposób na zrobienie np, klucza do drzwi.
W tym tutku posłużymy się akumulatorem i 4 miejscami w których będzie mógł się pojawić. Następnie gdy zbliżymy go do "stacji dokującej" zostanie automatycznie zamontowany na swoje miejsce:
1. Spawnowanie.
Wstawiamy na mapę byt PROP_PHYSIC. Wybieramy dla niego model akumulatora (car_battery01.mdl) i nazywamy, np. battery_01. Dla zwiększenia wydajności można wyłączyć cień. Akumulator ustawiamy dokładnie w takiej pozycji i miejscu w jakim ma się pojawić na mapie.
Teraz obok (obojętnie gdzie) wstawiamy byt POINT_TEMPLATE, nazywamy go battery01_template i w polu Template 1 wpisujemy nazwę naszego akumulatora: battery_01.
Mamy już gotowy jeden zestaw. Teraz w zależności od tego ile chcemy miejsc biorących udział w losowaniu, tyle musimy stworzyć takich zestawów. Ja zrobiłem 4. Każdy akumulator musi mieć inną nazwę, a każdy POINT_TEMPLATE musi się odwoływać tylko do jednego, konkretnego akumulatora. Bardzo ważne (dla późniejszego dokowania) jest, aby nazwy miały ten sam pierwszy człon, a inny numer po twardej spacji, np: battery_01, battery_02, itd (wyjaśnię to póżniej).
U mnie to wygląda tak:
2. Mechanizm losowania. Wstawiamy 1 byt LOGIC_CASE i nadajemy mu imię, np: logic_case. Ustawiamy outputy:
Teraz dodajemy jeszcze byt LOGIC_AUTO, w którym wystarczy jeden output:
OnMapSpawn | logic_case | PickRandom
LOGIC_AUTO automatycznie odpali byt LOGIC_CASE, który wylosuje 1 z 4 akumulatorów.
3. Dokowanie
Teraz stworzymy stację dokującą dla naszego akumulatora. Tworzymy jeszcze jeden akumulator, tym razem jako PROP_DYNAMIC_OVERRIDE (równie dobrze może być to zwykły PROP_PHYSIC z zaznaczonym motion disabled). Ustawiamy go dokładnie w takim położeniu jakie ma być widoczne w grze. Nazywamy go np: battery_onplace. Tworzymy analogicznie jak poprzednio POINT_TEMPLATE, nazywamy go (battery_onplace_template) i ustawiamy nazwę Template 1: battery_onplace.
Teraz najważniejsze. W miejsce, w którym ma być "gniazdo" na akumulator wstawiamy brush (najlepiej wielkości propa), nakładamy teksturę trigger i zamieniamy na byt TRIGGER_ONCE.
Zanim jednak ustawimy outputy, musimy wstawić na mapę byt FILTER_ACTIVATOR_NAME. Nadajemu mu imię battery_filter, a w polu Filter Name wpisujemy battery*. Gwiazdka jest bardzo ważna.
O co chodzi? W momencie gdy podejdziemy tutaj ze znalezionym akumulatorem, ten w naszych rękach zniknie, a pojawi się ten na stałe przymocowany. Stworzy to iluzję, że to jeden i ten sam przedmiot. Gdyby nie wstawić filtra, każdy przedmiot aktywował by ukryty akumulator, a w konsekwencji cały mechanizm, który może on uruchamiać (a nam chodzi przecież o konkretny item). Gwiazdka oznacza, że filtr przepuści każdy przedmiot z nazwą zaczynającą się od "battery". Dzięki temu wszystkie akumulatory będą działać, a my nie musimy wstawiać kilku filtrów dla każdej nazwy z osobna.
Dodatkowo, dla ładnego efektu wstawmy jeszcze dźwięk, który utwierdzi gracza, że obiekt jest na swoim miejscu. Dodajemy AMBIENT_GENERIC, nazywamy go (battery_onplace_sound) i wybieramy dźwięk (np, Metal_Barrel.BulletImpact).
Wszystko powinno wyglądać mniej więcej tak:
Na screenie pomarańczowy i szary brush to tylko ozdoba (func_detail). Jasnoszary klocek po lewej to POINT_TEMPLATE.
Teraz już możemy dodać outputy do trigger_once:
Po co zabijamy wszystkie 4 akumulatory, gdy zawsze jest widoczny tylko jeden? Bo nie wiemy który jest aktualnie w użyciu, więc dla pewności zabijamy wszystkie.
To jeszcze nie koniec. W polu Filter Name wpisujemy nazwę filtra. Inaczej nie zadziała. We flagach natomiast zaznaczamy tylko 2 pola: Pushables i Physics Objects.
Elektryk: Macie jedno kliknięcie ode mnie, aznajcie moją łaskę.
NaVarion: leżę ;D
Dabu: Przyśpiesz i Wyczyść Komp? Super! Gry karciane w internecie? Biorę! Fotografia szkolna? O tak!
CREWE: *ręczna deinstalacja
CREWE: Do napisania tak prostej rzeczy doprowadzili mnie ludzie pytaniami jak odinstalowac program po reisntalacji systemu windows. :P Nie sądziłem, że ręczna instalacja jeszcze może sprawiać problemy. Link
raven22: To ja tylko dodam, że nie wolno tworzyć sztucznych klików i klikać w reklamy, którymi nie jesteśmy zainteresowani :)
Tracha: Już widze, całe SMC w reklamy klika i tylko administracja z kilofami bije nie klikających :D
zwieracz: Klikać w reklamy, a nie gadać! ^^
Dabu: Jakoś nie mam ochoty, zieeeew.
Tracha: Wątpisz w Syna Marnortawnego?! On powrócił, zrespawnował się!