Func buyzone: Difference between revisions
Jump to navigation
Jump to search

Tip:The
Note:Setting this entity's team to -1 and
Note: This keyvalue is only used when this entity is spawned, so changing it with AddOutput has no effect.
The actual keyvalue that determines the buy team is
Note:This entity's trigger functionalities are !FGD but can be used, such as the StartDisabled keyvalue and the Enable/Disable/Toggle inputs. To use this entity's inherited trigger I/O (OnStartTouch, ...), set its spawnflags keyvalue appropriately (default is 4097). To add all of this in Hammer, see below.
Warning:
By default, this entity has the inputs SetEnabled/SetDisabled in Hammer, but it actually doesn't; Using these has no effect! Use Enable/Disable/Toggle instead. This can be fixed by editing csgo.fgd, searching for func_buyzone and replacing the incorrect input names. (The FGD code below fixes this differently.)
m (Changed parameters of {{this is a}} to comply with the updated version. This action was performed by a bot.) |
(-added class hierarchy, cleanup) |
||
Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
{{this is a|brush entity | [[File:Csgobuyzones.jpg|thumb|500px|Buyzones usually touch all player spawns of an entire team.]] | ||
{{CD|CBuyZone|file1=func_buy_zone.cpp}} | |||
{{this is a|brush entity|name=func_buyzone|game=Counter-Strike series}} | |||
It is used to define areas where [[player]]s of different teams can open the buy menu to purchase weapons and equipment. | It is used to define areas where [[player]]s of different teams can open the buy menu to purchase weapons and equipment. | ||
Line 14: | Line 11: | ||
{{Note|Setting this entity's team to -1 and <code>Disable</code>ing it have the same effect, just that these are independent operations.}} | {{Note|Setting this entity's team to -1 and <code>Disable</code>ing it have the same effect, just that these are independent operations.}} | ||
==Keyvalues== | == Keyvalues == | ||
{{KV Targetname}} | |||
{{KV|Team number (int)|int|intn=TeamNum|The team that can use the buyzone.}} | {{KV|Team number (int)|int|intn=TeamNum|The team that can use the buyzone.}} | ||
:{| class="wikitable" | :{| class="wikitable" | ||
Line 29: | Line 27: | ||
{{Note | This keyvalue is only used when this entity is spawned, so changing it with {{ent|AddOutput}} has no effect. {{csgo}} The actual keyvalue that determines the buy team is <code>teamnumber</code>.}} | {{Note | This keyvalue is only used when this entity is spawned, so changing it with {{ent|AddOutput}} has no effect. {{csgo}} The actual keyvalue that determines the buy team is <code>teamnumber</code>.}} | ||
{{KV BaseTrigger}} | {{KV BaseTrigger}} | ||
{{ | {{Note|This entity's trigger functionalities are {{not in FGD}} but can be used, such as the <tt>StartDisabled</tt> keyvalue and the <tt>Enable/Disable/Toggle</tt> inputs. To use this entity's inherited trigger I/O (<tt>OnStartTouch</tt>, ...), set its <tt>spawnflags</tt> keyvalue appropriately (default is 4097). To add all of this in [[Hammer]], see [[#FGD Code|below]].}} | ||
==Inputs== | == Inputs == | ||
{{ | {{warning|{{csgo}} By default, this entity has the inputs <tt>SetEnabled/SetDisabled</tt> in [[Hammer]], but it actually doesn't; Using these has no effect! Use <tt>Enable/Disable/Toggle</tt> instead. This can be fixed by editing {{ent|csgo.fgd}}, searching for <tt>func_buyzone</tt> and replacing the incorrect input names. (The FGD code [[#FGD Code|below]] fixes this differently.)}} | ||
{{ | {{I|SetTeam|param=int|Sets the team of this entity, which also sets the team that is allowed to buy.}} | ||
{{ | {{I|SetTeam_TerroristOnly|only=CSGO|Restrict buyzone to Terrorists only. Equivalent to <code>SetTeam 2</code>.}} | ||
{{ | {{I|SetTeam_CTOnly|only=CSGO|Restrict buyzone to Counter-Terrorists only. Equivalent to <code>SetTeam 3</code>.}} | ||
{{ | {{I|SetTeam_AllTeams|only=CSGO|Allows all teams to use the buyzone. Equivalent to <code>SetTeam 0</code>.}} | ||
{{I|SetTeam_None|only=CSGO|Allows no team to use the buyzone, effectively disabling it. Equivalent to <code>SetTeam -1</code>.}} | |||
{{I BaseTrigger|notf2=1}} | {{I BaseTrigger|notf2=1}} | ||
==Outputs== | == Outputs == | ||
{{O BaseTrigger}} | {{O BaseTrigger}} | ||
==[[FGD]] Code== | == [[FGD]] Code == | ||
This code... | This code... | ||
*replaces its base class with Trigger which effectively adds trigger properties such as the keyvalue <tt>StartDisabled</tt>, the inputs and outputs <tt>Enable/Disable/Toggle/OnStartTouch/...</tt> and the trigger flags (1: Clients, ...). | *replaces its base class with Trigger which effectively adds trigger properties such as the keyvalue <tt>StartDisabled</tt>, the inputs and outputs <tt>Enable/Disable/Toggle/OnStartTouch/...</tt> and the trigger flags (1: Clients, ...). |
Revision as of 13:25, 25 September 2024


![]() |
---|
CBuyZone |
![]() |
func_buyzone
is a brush entity available in Counter-Strike series.
It is used to define areas where players of different teams can open the buy menu to purchase weapons and equipment.
If a player touches the volume of this entity and his team equals the team of this entity, then he is allowed to buy. If this entity has the team 0 or -1, then any or no player can buy inside this entity's volume, respectively.

SetTeam
input can be used to change the buying team in-game.
Disable
ing it have the same effect, just that these are independent operations.Keyvalues
- Name (targetname) <string>[ Edit ]
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g.
parentname
ortarget
).
Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities
- Team number (int) (TeamNum) <integer>
- The team that can use the buyzone.


teamnumber
.
|

Inputs


- SetTeam <integer >
- Sets the team of this entity, which also sets the team that is allowed to buy.
- SetTeam_None (only in
)
- Allows no team to use the buyzone, effectively disabling it. Equivalent to
SetTeam -1
.
|
Outputs
|
FGD Code
This code...
- replaces its base class with Trigger which effectively adds trigger properties such as the keyvalue StartDisabled, the inputs and outputs Enable/Disable/Toggle/OnStartTouch/... and the trigger flags (1: Clients, ...).
- adds the input TouchTest and the outputs OnTouching/OnNotTouching as seen in trigger_multiple of base.fgd.
- removes the invalid inputs SetEnabled, SetDisabled.
Replace the corresponding lines of cstrike.fgd or csgo.fgd near func_buyzone with this.
@SolidClass base(Trigger, TeamNum) = func_buyzone: // "Targetname" -> "Trigger"
"Buy Zone. Players can buy equipment while standing in this zone, if the zone matches their current team.\n\n" +
"A single Buy Zone entity must be either terrorist or counter-terrorist, it cannot be both. Should have " +
"the toolstrigger material applied to all sides"
[
// input SetEnabled(void) : "Sets this buyzone as enabled."
// input SetDisabled(void) : "Sets this buyzone as disabled."
input TouchTest(void) : "Tests if the trigger is being touched and fires an output based on whether the value is true or false."
input SetTeam_TerroristOnly(void) : "Make it so only terrorist can buy from this buyzone."
input SetTeam_CTOnly(void) : "Make it so only CT's can buy from this buyzone."
input SetTeam_AllTeams(void) : "Make it so all teams can buy from this buyzone."
input SetTeam_None(void) : "Make it so no teams can buy from this buyzone (this essentially disables the buyzone)."
output OnTouching(void) : "Fired when the TestTouch input is true (something is touching the trigger.)"
output OnNotTouching(void) : "Fired when the TestTouch input is not true (nothing is touching the trigger.)"
]