targetname
targetname
je keyvalue dostupan u svim Source igrama.
Targetname (također poznat jednostavno kao name) je naziv entiteta. Ciljni_naziv nije potreban za postojanje entiteta, ali općenito mora biti prisutan da bi entitet igrao ulogu u I/O sustavu .
Bilješke
- Entiteti se mogu ciljati i prema svom nazivu klase (npr.
prop_dynamic
). - Nazivi ciljeva ne moraju biti jedinstveni, mogu se dijeliti (i unosi će se slati svakom od njih). Duplicirani nazivi ciljeva prikazuju se podebljanim fontom.
- Nazivi ciljeva ne mogu sadržavati znakove
!
ili*
(vidi dolje). - Nazivi ciljeva također ne mogu sadržavati znakove
,
ako namjeravate koristiti entitet kao roditelja, jer se to koristi za postavljanje točke vezivanja . - Imenovanje određenih entiteta, kao što su svjetla , može promijeniti njihovo ponašanje.
Instance
- Instance mogu koristiti ispravke imena s prefiksom ili postfiksom i automatski će generirati prefiks ako nisu navedeni parametri.
- Prefiksi i postfiksi odvojeni su jednom crticom, npr. hall_a3-door_02.
- Postavljanje simbola
@
na početak ciljanog imena (npr. @exit_door) zaobilazi ispravak imenovanja za taj određeni entitet. Ako su @exit_door i exit_door_relay dio instance s prefiksom Door_01, imena entiteta bila bi @exit_door i Door_01-exit_door_relay.
Podudaranje imena
Tijekom pretraživanja entiteta, Izvor može koristiti nekoliko proširenih značajki podudaranja koje su korisne u raznim situacijama. Koriste se za ciljanje entiteta s nepoznatim ili djelomično poznatim nazivom, a najčešće se koriste u I/O lancima, ali se mogu koristiti i u KeyValues objektima koji ciljaju entitete, poput filtera KV u filter_activator_name/klasa
ili polju parent entiteta. Proširene značajke su:
- Wildcards
- Source podržava zamjenske znakove
*
u ograničenoj mjeri. To znači da će pretraživanje area1* odgovarati svim nazivima ciljeva koji počinju s area1, poput area1_portal ili area1_door, ali ne area2_door. Ovi zamjenski znakovi također su ograničeni na završni*
, što znači da složeniji zamjenski znakovi poput *_door ili area*_door neće funkcionirati.Bilješka:Hammer ne prepoznaje većinu ovih oblika podudaranja i vidjet će ih kao pogreške u editoru, ali će raditi u igri.
Bilješka:
Mapbase ima podršku za složeno podudaranje zamjenskih znakova poput *_door, area*_door, ar*a*_d*r,
?
zamjenskih znakova itd.
I/O sustav također podržava podudaranje naziva klasa, koje se podudara s nazivom klase entiteta, a ne s njegovim ciljnim nazivom. Ovo koristi sve iste proširene značajke podudaranja navedene gore. Neki drugi dijelovi Izvornog koda podržavaju podudaranje naziva klasa, ali to obično nije slučaj osim ako nije drugačije navedeno.

ent_fire prop_* kill
, prop_* će prvo pokušati pronaći sve nazive ciljeva i koristiti naziv klase samo ako se pronađe entitet bez takvog naziva cilja, što pronalaženje naziva klase čini nepouzdanim. Slično tome, ako se neki entitet zove player
i pokušamo ciljati sve igrače koristeći njihov naziv klase player, to neće raditi jer bi entitet pod nazivom player bio cilj.
Posebni nazivi ciljeva
Sljedeći posebni nazivi ciljeva mogu se koristiti za dinamički odabir entiteta.
Oni koji su procijenjeni na temelju aktivatora/pozivatelja
Svaki aktivirani izlaz stvara IO događaj koji se dodaje u red događaja (ispisiv pomoću dumpeventqueue), koji se obrađuje u odgovarajuće vrijeme na temelju određenog kašnjenja. IO događaji sadrže dodatne informacije o tzv. aktivatoru i pozivatelju, a to je postavljeno načinom na koji je određeni izlaz aktiviran.
Activator je obično entitet koji je uzrokovao okidanje izlaza. Primjeri:
- OnPressed izlaz func_button prilikom okidanja postavit će igrača koji ga je pritisnuo kao activator
- OnStartTouch izlaz trigger_multiple prilikom okidanja postavit će entitet koji ga je dodirnuo kao activator
Caller je gotovo uvijek entitet gdje je definiran izlaz, ali postoje rijetki slučajevi gdje se to razlikuje i izlaz postavlja nešto drugo kao pozivatelj. Primjeri posebnih slučajeva:
- OnGetValue izlaz od math_counter postavit će svog Caller kao entitet koji je bio Caller ulaza GetValue koji je uzrokovao aktiviranje izlaza
- OnReachedFloor izlaz od info_elevator_floor postavlja Caller kao entitet func_elevator koji je dosegao zadani kat
- OnFoundEntity izlaz od point_entity_finder postavlja Caller kao pronađeni entitet
Kada se koristi kao 'Ciljni entitet'
!self
- U ovom kontekstu
!self
će koristiti caller što ga čini ekvivalentnim!caller
, što može dovesti do zabune u izlazima spomenutim kao posebni slučajevi (npr. OnGetValue, OnFoundEntity, OnReachedFloor ...)
!pvsplayer
- Prvi igrač pronađen u PVS -u entiteta. Korišteni PVS uzima se iz caller ili activator ako ne postoji entitet caller. Ako također ne postoji activator, ponaša se isto kao
!player
Kada se koristi kao ulazni parametar

!self
- Entitet koji prihvaća ulaz.
Primjer:Ako logic_relay aktivira
ForceSpawnAtEntityOrigin !self
prema env_entity_maker sOnTrigger
, entitet!self
je sam env_entity_maker.
!pvsplayer
- Prvi igrač pronađen u PVS -u entiteta. Korišteni PVS uzima se od entiteta koji prihvaća ulaz.
Ponaša se isto kao oboje
!activator
- Koristit će se activator izlaza (Pogledajte objašnjenje activator iznad ↑). Može se smatrati i entitetom koji je započeo trenutni I/O lanac.
Primjer:U OnStartTouch izlazu trigger_multiple, to je entitet koji je dodirnuo okidač, bez obzira koristi li se kao 'Ciljni entitet' ili parametar ulaza.
!caller
- Koristit će se pozivatelj izlaza (Pogledajte objašnjenje caller iznad ↑).

OnTrigger
:
env_entity_maker ForceSpawnAtEntityOrigin !caller
- ili
!caller Kill
!caller
sam relej u oba slučajaOni koji su procijenjeni drugim sredstvima
!player
- Cilja igrača.
- U igrama za više igrača, cilja prvog igrača koji se pridružio serveru.
Savjet:Za ciljanje svih igrača na poslužitelju, koristite naziv klase
player
.
!picker
- Prvi entitet pod igračevim nišanom; uglavnom samo za otklanjanje pogrešaka. Entiteti bez kolizije mogu se odabrati samo ciljanjem na njihov ishodište.
- U igrama za više igrača koristi prvog igrača koji se pridružio poslužitelju.
!bill
/!zoey
/!louis
/!francis
/!nick
/!rochelle
/!coach
/!ellis
(samo u)
- Cilja odgovarajućeg preživjelog.
!player_blue
/!player_orange
(samo u)
- U kooperativnom načinu rada, ovo cilja ATLAS (igrač 1/plavi) ili P-Body (igrač 2/narančasti).
Ključne riječi FindNamedEntity
Ove ključne riječi dostupne su samo u FindNamedEntity
, metodi specifičnoj za NPC-ove koju pretražuju samo određeni sustavi (npr. koreografirane scene), a ne stvari poput I/O sustava.
- Napraviti:
Mapbase čini ovo dostupnim za I/O pretrage. Je li to slučaj u nekoj drugoj grani?
!speechtarget
- Entitet na koji
!caller
gleda zbog koreografskog događaja Pogledaj glumca ili Lice glumca . !friend
- Najbliži prijateljski NPC od
!caller
. Ovo vraća igrača na NPC-ovima koji ne potječu odCAI_PlayerAlly
. !enemy
- Trenutni neprijatelj
!caller
-a.
Događaji igrača
U većini igara za više igrača, bilo koji entitet sa sljedećim nazivima ciljeva dobit će unos Use poslan im kada se taj događaj dogodi.
game_playerdie
- Okida se svaki put kada player umre. Igrač koji je umro je!aktivator
.game_playerkill
- Okida se svaki put kada player ubije drugog igrača, ubojica je!activator
.game_playerjoin
- Okida se svaki put kada se player pridruži igri, igrač koji se pridružuje je!activator
.game_playerspawn
- Aktivira se svaki put kada se pojavi player, s igračem koji se pojavio kao!aktivator
.game_playerleave
- Okida se svaki put kada player napusti igru.!activator
neće raditi u ovom slučaju, jer entitetplayer
više ne postoji.




player_spawn
, player_death
i player_disconnect
.Vidi također
- Korisnički ulazi i izlazi
GetDebugName()
, za pristup ciljnom nazivu entiteta u C++.