Targetname
Targetname je osnovna Keyvalue dostupna u svim Source igrama. Targetname (prevedeno: ime cilja) (također poznato jednostavno kao Name) je ime entiteta. Ciljno ime nije potrebno za postojanje entiteta, ali općenito mora biti prisutno da bi entitet igrao ulogu u I/O sustav .
Bilješke
- Entiteti također mogu biti meta njihovih classname (npr.
prop_dynamic
). - Imena ciljeva ne moraju biti jedinstvena, mogu se dijeliti (a unosi će se slati svakom). Duplicirani nazivi ciljeva prikazani su podebljanim fontom.
- Nazivi ciljeva ne mogu sadržavati
!
ili*
znakova (vidi dolje). - Nazivi ciljeva također ne mogu sadržavati
,
znakova ako namjeravate koristiti entitet kao nadređenog, jer se to koristi za postavljanje točke privitka .
Instance
- Instance može koristiti popravke imena prefiksa ili postfiksa i automatski će generirati prefiks ako nisu navedeni parametri.
- Prefiksi i postfiksi odvojeni su jednom crticom, npr. hall_a3-door_02.
- Postavljanje
@
simbol na početku naziva cilja (e.g. @exit_door) će zaobići popravak imenovanja za taj određeni entitet. Ako @exit_door i exit_door_relay bili dio instance s prefiksom Door_01, nazivi entiteta bili bi @exit_door i Door_01-exit_door_relay.
Događaji Igrača
U većini igara za više igrača, bilo kojem entitetu sa sljedećim imenima ciljeva bit će poslan unos Use kada se taj događaj dogodi.
game_playerdie
- Pali svaki put kad player umre. Igrač koji je umro je!activator
.game_playerkill
- Pali svaki put kad player ubije drugog igrača, ubojica je!activator
.game_playerjoin
- Pali svaki put kad player pridruži igri, igrač koji se pridruži je!activator
.game_playerspawn
- Pali svaki put kad Pojavljuje se player, s igračem koji se pojavljuje kao!activator
.Greška:game_playerspawn
ne funkcionira u . [todo tested in?]game_playerleave
- Pali se svaki put kad player napusti igru.!activator
neće raditi u ovom slučaju, jer entitetplayer
više ne postoji.
player_spawn
, player_death
i player_disconnect
.Podudaranje imena
Dok traži entitet, Source 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 imenom, a najčešće se koriste u I/O lancima, ali se također mogu koristiti u ključnim vrijednostima koje ciljaju entitete, poput filtra KV u filter_activator_name/klasa
ili nadređeno polje entiteta. Proširene značajke su:
- zamjenski znakovi
- Source podržava
*
zamjenske znakove u ograničenoj mjeri. To znači da će traženje area1* odgovarati svim ciljevima koji počinju s area1, poput area1_portal ili area1_door, ali ne area2_door. Ovi zamjenski znakovi također su ograničeni na*
na kraju, što znači složenije zamjenske znakove poput *_door ili area*_door neće funkcionirati.- Napomena: Mapbase ima podršku za složeno podudaranje zamjenskih znakova poput *_door, area*_door, ar*a*_d*r,
?
zamjenski znakovi itd. - Napomena:Hammer ne prepoznaje većinu ovih oblika podudaranja i vidjet će ih kao pogreške u uređivaču, ali će raditi u igri.
I/O sustav također podržava podudaranje naziva klase, koje se podudara prema nazivu klase entiteta, a ne prema nazivu cilja. Ovo koristi sve iste značajke proširenog podudaranja navedene gore. Neki drugi dijelovi Izvora podržavaju podudaranje naziva klase, ali to obično nije slučaj osim ako nije drugačije navedeno.
Ključne riječi
Sljedeći posebni nazivi ciljeva mogu se koristiti za dinamički odabir entiteta.
!activator
parametar, ali igračev unos SetFogController ne može procijeniti !activator/!caller
i treba koristiti ciljno ime željenog env_fog_controller-a.!activator
- Entitet koji je započeo trenutni I/O lanac.
- Ako igrač uđe u okidač koji aktivira logic_relay, igrač je
!activator
izlaza releja. !self
- Entitet iz kojeg potječe trenutni unos.
- Ako igrač uđe u okidač koji aktivira logic_relay, relej je
!self
njegovih rezultata.
- Ako logic_relay aktivira
ForceSpawnAtEntityOrigin !self
env_entity_maker-u sOnTrigger
, entitet!self
je sam env_entity_maker.
!caller
- Entitet iz kojeg potječe trenutni izlaz.
- Ako igrač uđe u okidač koji aktivira logic_relay, okidač je
!caller
izlaza releja.
- Ako logic_relay aktivira
ForceSpawnAtEntityOrigin !caller
env_entity_maker-u sOnTrigger
, entitet!caller
je sam relej. - Za entitete kao što su
filter_activator_[xxxx]
ili logic_case,!caller
odTestActivator
iliPickRandom/PickRandomShuffle
je samfilter_activator_[xxxx]
/logic_case
, a ne entitet koji je pokrenuo unos.
- Napomena:Pojedinačni unosi mogu nadjačati entitet koji cilja
!caller
! Ovo se radi pomoću point_entity_finder, math_counter, logic_case, i filter entiteta. !player
- Cilja igrača.
- U igrama za više igrača, cilja na prvog igrača koji se pridružio poslužitelju.
player
.parentname
ne uspijevaju nadređeni pri pokretanju karte. [todo tested in?]- Raditi okolo:Umjesto toga upotrijebite logic auto i
SetParent
unos. !player_blue
(samo u )- U Portal 2 Coop, ovo cilja na ATLAS (igrač 1).
!player_orange
(samo u )- U Portal 2 Coop, ovo cilja na P-Body (igrač 2).
!pvsplayer
- Prvi igrač pronađen u entitetu Set potencijalne vidljivosti . PVS koji se koristi preuzet je od entiteta koji pretražuje ili od aktivatora ako ne postoji entitet koji pretražuje. Ako niti ne postoji aktivator, vraća se prvi igrač u igri (tj.
!player
). !picker
- Prvi entitet ispod igračevog križića; uglavnom samo za otklanjanje pogrešaka. Entiteti bez kolizije mogu se odabrati samo ciljanjem na njihovo podrijetlo.
- U igrama za više igrača koristi se prvi igrač koji se pridružio poslužitelju.
FindNamedEntity Ključne riječi
Ove su ključne riječi dostupne samo u FindNamedEntity
, metodi specifičnoj za NPC-ove koju pretražuju samo određeni sustavi (npr. koreografirane scene) a "ne" stvarima poput I/O sustava.
- Napraviti: Mapbase čini ovo dostupnim za I/O pretraživanja. Je li to slučaj u nekoj drugoj grani?
!speechtarget
- Entitet koji
!caller
traži zbog Pogledaj glumca ili Lice Glumac koreografski događaj. !friend
!caller
najbliži prijateljski NPC. Ovo vraća igrača na NPC-ovima koji ne potječu odCAI_PlayerAlly
.!enemy
- Trenutni neprijatelj
!caller
.
Bilješke o ključnim riječima
- I
!activator
i!caller
mogu se razlikovati za određene unose, što ovisi o implementaciji svakog ulaza. U većini slučajeva to je na neželjeni način, poputGetValue
za math_counter. - Kada je "Ciljni entitet" izlaza prazan,
!self
je nije postavljeno na vrijednost!caller
. - Nazive ciljeva koji se koriste u polju nadjačavanja parametara izlaza procjenjuje entitet koji "prima" izlaz, a ne onaj koji ga šalje.
Vidi također
- Korisnički ulazi i izlazi
GetDebugName()
, za pristup ciljnom nazivu entiteta u C++.