Dokumentacija ovog članka je za sve što koristi Source pogon. Kliknite ovdje za više informacija.

targetname

From Valve Developer Community
< Hr
Jump to navigation Jump to search
English (en)Hrvatski (hr)中文 (zh)Translate (Translate)
edit

targetname je keyvalue dostupan u svim Source 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(en).

Bilješke

  • Entiteti se mogu ciljati i prema svom nazivu klase(en) (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(en).
  • Imenovanje određenih entiteta, kao što su svjetla(en), može promijeniti njihovo ponašanje.

Instance

  • Instance(en) 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(en) ili polju parent(en) 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.
Note.pngBilješka:Hammer ne prepoznaje većinu ovih oblika podudaranja i vidjet će ih kao pogreške u editoru, ali će raditi u igri.
Note.pngBilješka:Mapbase Mapbase ima podršku za složeno podudaranje zamjenskih znakova poput *_door, area*_door, ar*a*_d*r, ? zamjenskih znakova itd.

I/O sustav(en) 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.

Icon-Important.pngVažno:Nije moguće ciljati po nazivu cilja i nazivu klase odjednom. Ako neki entitet ima naziv cilja prop_window, na primjer, i želimo ciljati sve entitete gdje naziv klase počinje s prop_ naredbom 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.
Tip.pngSavjet:Iako nije izvedivo u nekim situacijama, većina implementacija VScript(en) podržava samostalnu iteraciju entiteta i sadrži alate za usporedbu stringova, regex itd., što omogućuje gotovo svaku vrstu podudaranja imena.

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
Wiki Note:Stranice entiteta mogu odrediti tko je aktivator i pozivatelj koji se procjenjuje za svaki izlaz. To se prikazuje kao mali sivi tekst ispod naziva izlaza. (Vidi na primjer stranice prop_physics#Outputs(en), math_counter#Outputs(en)). Određivanje aktivatora/pozivatelja za izlaze može se izvršiti pomoću parametara Template:O.

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(en)-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

Note.pngBilješka:Kako se ulazni parametri obrađuju u entitetu koji prihvaća ulaz, ne mogu svi ulazi procijeniti ove ciljne nazive. Na primjer, ulaz SetParent može ih procijeniti, ali ulaz SetFogController od player to ne može učiniti i treba koristiti željeni ciljni naziv env_fog_controllera.
!self
Entitet koji prihvaća ulaz.
PlacementTip.pngPrimjer:Ako logic_relay aktivira ForceSpawnAtEntityOrigin !self prema env_entity_maker s OnTrigger, entitet !self je sam env_entity_maker.
!pvsplayer
Prvi igrač pronađen u PVS(en)-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.
PlacementTip.pngPrimjer: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 ↑).
PlacementTip.pngPrimjer:Ako logic_relay aktivira sljedeće iz izlaza OnTrigger:
  • env_entity_maker ForceSpawnAtEntityOrigin !caller
  • ili !caller Kill
tada je entitet !caller sam relej u oba slučaja

Oni 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.
Tip.pngSavjet: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 Left 4 Dead 2)
Cilja odgovarajućeg preživjelog.
!player_blue / !player_orange (samo u Portal 2)
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 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(en) ili Lice glumca(en).
!friend
Najbliži prijateljski NPC od !caller. Ovo vraća igrača na NPC-ovima koji ne potječu od CAI_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(en) 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.
    Icon-Bug.pngGreška:game_playerjoin nije pokrenut od strane botova(en).  [to-do: testirano u ?]
  • game_playerspawn - Aktivira se svaki put kada se pojavi player, s igračem koji se pojavio kao !aktivator.
    Icon-Bug.pngGreška:game_playerspawn ne funkcionira u Counter-Strike: SourceCounter-Strike: Global OffensiveTeam Fortress 2.
  • game_playerleave - Okida se svaki put kada player napusti igru. !activator neće raditi u ovom slučaju, jer entitet player više ne postoji.
Potvrdi:U kojim igrama game_playerjoin i game_playerspawn zapravo rade?
Tip.pngSavjet:U Team Fortress 2Left 4 Dead 2, koristite VScript hooks događaja(en) koji također nude dodatne informacije uz svaki događaj (kao što je napadač u slučaju smrti itd.). Ekvivalentni nazivi događaja su player_spawn, player_death i player_disconnect.

Vidi također


Stub

Ovaj članak ili odjeljak je stub. Možete pomoći tako da ga proširite.