Source Modification Centre - LOGO
Gość: ( Logowanie | Rejestracja )

 
MENU
 
ZASOBY
 
 
LEGENDA
 
REKLAMA
tani zdjęcia ślub Gorzów

tanio motel Gorzów

Suknie ślubne gorzów wlkp


fotografia studniówkowa Radom

wypożyczalnia aut

Encyklopedia wiedzy o grach Valve

ślub gorzów wielkopolski

tworzenie stron internetowych gorzów wlkp

NASZ BUTTON
SMC
 
NA FORUM
 
 
TUTORIALE - MAPPING [ Dodaj ]
NPC w Half-Life 2 Deathmatch & Mapy js_coop
[ 2009-04-04 16:57:30  Dodał:  MoonBlaze   Wyświetleń: 1443   Komentarzy: 4  ]
    W tym o to tutorialu pokażę wszystkim jak w prosty sposób dodać NPC do gry Half-Life 2 Deathmatch. Jest to sposób pracochłonny, gdyż autorzy gry z niewiadomej przyczyny zablokowali lub raczej nie dodali funkcji spawnowania/dodawania sztucznej inteligencji do gry, ale końcowy efekt jest wart takiej pracy. Przy okazji dowiemy się jak wykonana jest mapa typu JS.
***
Wszystkie byty (podstawowe) jakie wykorzystamy na naszej mapie:

Emot point_clientcommand x2
Emot point_servercommand
Emot filter_activator_team x2
Emot trigger_multiple x2
Emot trigger_weapon_strip
Emot trigger_once
Emot ai_relationship x14
Emot npc_template_maker


Podstawy


Tworzymy zwykłą mapę np. składającą się z dwóch pokoi i wstawiamy podstawowe byty jak info_player_deathmatch, light_environment itp. Łatwiej nam będzie kontynuować pracę jeżeli respawn graczy będzie blisko, ponieważ taką sprawę będzie można załatwić 1 wielkim triggerem lecz, gdy byty info_player_deathmatch będą porozrzucane po całej mapie będziemy musieli wstawiać kilka triggerów o czym przekonamy się później. Przykładowy respawn graczy:

Source Modification Centre


Jeżeli mamy już stworzony respawn graczy wstawiamy na mapę dwa byty point_clientcommand i point_servercommand (obojętnie gdzie na mapie). Obydwa byty nazywamy client (dlatego obydwa, ponieważ będzie można stworzyć wydarzenie, które aktywuje oba byty za jednym razem).

Inteligencja NPC


Wstawiamy na mapę 14 bytów ai_relationship (najlepiej równo ułożonych), aby NPC mogło atakować gracza.
W opcjach bytu:
Name: Można podać jeżeli ktoś chce stworzyć wydarzenie oparte na tym bycie, ale w tym przypadku zostawiamy pole puste.
Subject(s): Podajemy nazwę NPC, dla którego ma być przystosowany byt ai_relationship. Dajmy npc_rollermine.
Target(s): Nazwa celu, do którego NPC będzie miało przypisaną "inteligencję". Wpisujemy !player, czyli cel NPC to gracz.
Disposition: Jaki ma być NPC w stosunku do celu. Wybieramy Hate, aby nasz NPC był wściekły i atakował gracza.
Disposition Priority: Tutaj wpisujemy priorytet NPC jak bardzo ma lubić/być wściekłym lub przestraszony w stosunku do celu. Wpisujemy liczbę 99.
Reciprocal & Start Active dajemy Yes


W każdym bycie ai_relationship ustawiamy/wpisujemy wszystko tak samo oprócz Subject. Tam wpisujemy nazwę następnego NPC (trzeba tak zrobić z każdym, który chcemy użyć do gry). Najlepiej jest zrobić 14 takich bytów do podstawowych NPC. Zapewne Wam się nie chce, więc przygotowałem już gotowe 14 bytów ai_relationship. Możemy je ściągnąć stąd: http://www.sourcesdk.pl/files/Byty_ai_relationship.zip. Jest to prefab, który trzeba wstawić na naszą mapę. Jak to się wstawia, to już chyba każdy wie.

Funkcje serwera i clienta


Teraz wstawiamy bryłę otaczającą wszystkie info_player_deathmatch i zamieniamy ją w trigger_once. Najlepiej jest wstawić ją pod kolana graczy, aby mieć pewność, że każdy gracz dotknie trigger.

Source Modification Centre


Ten trigger będzie odpowiadał za punkty życia i obrażeń NPC, więc można wpisać własne (przykład jest niżej).
W opcjach triggera:
Name: Podajemy nazwę alien_hp

Reszte zostawiamy w spokoju. We flagach bytu odznaczamy wszystko oprócz Clients.
Teraz zakładka bytu Outputs:
OnStartTouch-> client-> Command-> sk_helicopter_health 5600
OnStartTouch-> client-> Command-> sk_helicopter_grenadedamage 85
OnStartTouch-> client-> Command-> sk_helicopter_grenaderadius 1000.0
OnStartTouch-> client-> Command-> sk_strider_health 2500
OnStartTouch-> client-> Command-> sk_gunship_health_increments 100
OnStartTouch-> client-> Command-> viewmodel_fov 60
OnStartTouch-> client-> Command-> sk_zombie_fast_health 300
OnStartTouch-> client-> Command-> sk_antlion_health 200
OnStartTouch-> client-> Command-> sk_antlionguard_dmg_charge 500
OnStartTouch-> client-> Command-> sk_antlionguard_dmg_shove 500
OnStartTouch-> client-> Command-> sk_antlionguard_health 5000
OnStartTouch-> client-> Command-> sk_scaner_health 50
OnStartTouch-> client-> Command-> sk_manhack_melee_dmg 25
OnStartTouch-> client-> Command-> sk_manhack_health 5000
OnStartTouch-> client-> Command-> sk_vortigaunt_health 200
OnStartTouch-> client-> Command-> sk_vortigaunt_dmg_zap 100
OnStartTouch-> client-> Command-> sk_vortigaunt_dmg_rake 50
OnStartTouch-> client-> Command-> sk_vortigaunt_dmg_claw 40
OnStartTouch-> client-> Command-> sk_zombie_dmg_both_slash 80
OnStartTouch-> client-> Command-> sk_zombie_dmg_one_slash 50
OnStartTouch-> client-> Command-> sk_zombie_health 100
OnStartTouch-> client-> Command-> sk_zombie_poison_dmg_spit 50
OnStartTouch-> client-> Command-> sk_zombie_poison_health 200
OnStartTouch-> client-> Command-> sk_headcrab_poison_health 50
OnStartTouch-> client-> Command-> sk_headcrab_fast_health 200
OnStartTouch-> client-> Command-> sk_headcrab_melee_dmg 30
OnStartTouch-> client-> Command-> sk_headcrab_health 40


Zapewne znowu Wam się nie chce tego wpisywać, więc kolejny raz przygotowuję prefab do ściągnięcia Emot http://www.sourcesdk.pl/files/Trigger_once.zip

Mapy js_COOP


Jeżeli chcemy zrobić mapę a la js_coop to czytamy dalej co zrobić, aby model gracza był tylko 1, brak broni itp. Jeżeli nam na tym nie zależy przechodzimy do momentu Wstawianie NPC.
Więc tak jak już mówiłem, jeżeli chcemy zrobić mapę js_coop musimy zmienić byt info_player_deathmatch na info_player_rebel. Teraz wstawiamy obok mały pokoik dla graczy, którzy są w drużynie Combine. Jak już zrobimy to wstawiamy tam ich respawn info_player_combine. Pod nogi niechcianych kombinatorów tworzymy bryłę wielkości małego pomieszczenia i zamieniamy ją w trigger_hurt. Na głowę graczy tworzymy kolejną bryłę wielkości poprzedniego triggera i zamieniamy ją w trigger_weapon_strip. Pomieszczenie dla graczy z drużyny Combine gotowe i powinno wyglądać mniej, więcej tak:

Source Modification Centre


Pozbyliśmy się niechcianych kombinatorów, więc dokończmy teraz nasz respawn drużyny Rebels. dodajemy na mapę drugi byt point_clientcommand i nadajemy mu nazwę Players. Teraz wstawiamy na respawn trigger wielkości poprzedniego trigger'a_once lecz tym razem niech on ma wysokość graczy i zamieniamy go w trigger_multiple
W zakładkach Outputs wpisujemy:
OnStartTouch-> Players-> Command-> cl_playermodel models/Humans/Group03/male_05.mdl
OnStartTouch-> Players-> Command-> cl_playermodel models/Humans/Group03/male_06.mdl
OnStartTouch-> Players-> Command-> cl_playermodel models/Humans/Group03/male_07.mdl
OnStartTouch-> Players-> Command-> cl_playermodel models/Humans/Group03/male_08.mdl
OnStartTouch-> Players-> Command-> cl_playermodel models/Humans/Group03/male_09.mdl


Niestety teraz nie mam prefaba Emot.
To nam zapewni, że wszyscy gracze będą mieli wyznaczone modele postaci. Teraz został nam już tylko jeden trigger od wyrzucania broni graczom. Wstawiamy bryłę wielkości poprzedniego trigger'a_oncei dajmy go na głowę graczy i zamieńmy tą bryłę w trigger_weapon_strip. Cały respawn powinien wyglądać tak:

Source Modification Centre


Wstawianie NPC


Wstawianie na mapę NPC musi odbywać się wg. wzoru. Wstawiamy jakikolwiek NPC, Ja wstawię npc_antlion_guard. Nadaję mu nazwę np. npc_antlionguard i przechodze do zakładki Flags i zaznaczam tylko Fall to ground, Fade Corpse, Template NPC. Następnie dodajemy byt npc_template_maker.
W opcjach bytu:
Name: Wstawiamy nazwę makera jeżeli chcemy, aby aktywował się później (jeżeli nie wpisujemy pamiętajmy aby w opcji Start Disabled dać No).
Name of Template NPC: Wstawiamy nazwę ustawioną poprzednio dla potwora w moim przypadku npc_antlionguard.
Reszta opcji może być ustawiona wg. nas. Tylko we flagach nic nie zmieniajcie.
Spawn NPC powinien wyglądać tak:

Source Modification Centre


I to jest już wszystko. Teraz powinniśmy mieć w pełni sprawne NPC w HL2DM. Myślę, że się to komuś przyda. Emot

Autor: MoonBlaze
Komentarze ( 4 ) / Dodaj komentarz
 
KOMENTARZE  
[ 2009-04-04 21:18:39  Dodał:  NaVarion  ]
 
Wow, dobra robota Emot Przydał by mi się pół roku temu Emot
 
[ 2009-04-05 18:43:06  Dodał:  Dabu  ]
 
Fajne.
 
[ 2009-04-09 13:39:37  Dodał:  lemi44  ]
 
Wreszcie coś nowego Emot Bardzo dobrze napisany tutorial i niektórym może się przydać Emot
 
[ 2009-04-17 20:25:27  Dodał:  Dexter  ]
 
super! Emot
 
INFO
 
NAJNOWSZE
 
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
 
ANKIETA

[ Czas generowania strony: 0.042 secs. ]

Copyright (c) 2002-2005 by Mefi & .raven
Wszelkie prawa zastrzeżone

Fotograf studniówka
Salon sukien ślubnych gorzów



38.107.179.22338.107.179.223

Polecamy:

mpblawcentergembalskiPsychiatra SzczecinOpisy GGosteobusCiąża GotLink.pl Konie odżywki ogłoszenia praca Konstancin Palarnie