Scampi

L4: Comfortable Member
Feb 8, 2017
186
151
Greetings!

I'm finishing my map, cp_chateau_event, a halloween variant of cp_steel. Go ahead and have a gander at it. It's just about done, and I would like to submit it for testing soon, but there are two things I'd like to clear up first.

1. Am I allowed to call it cp_chateau_event, or should I call it cp_steel_event? The name Chateau is far more fitting for what I've done with the map, but if I have to use the old name I'll understand.

2. I'm very new to the logic of maps, I basically kept the old logic of steel there. I removed the end-of-round event where, if RED wins, people are sucked into the pit as the rocket fires. What I would like to do is make it so that no matter which team wins, a truce is called, and both teams keep their weapons and gain no crit boost. The winners are announced when the final point is capped (unlike Helltower where the hellgames happen first). Then, skeletons spawn all over the map and everyone runs from or fights the skeletons for the next minute. Is this possible to make, and if so, how would I go about it?
 

Da Spud Lord

Occasionally I make maps
aa
Mar 23, 2017
1,339
994
1. You don't have to name it <old map name>_event. That's just a trend started by Valve, and it's been that way ever since because that's considered the "official" way of doing it. My best guess as to why they did this is so that people could get a good idea of what the map was like before loading it up (but who really knows). But of course, there is no rule, Valve's not gonna sue you because you used the wrong name. You can name it cp_steel_event, you can name it cp_chateau, or whatever fits your fancy.
2. First off, you want to prevent each team from winning when the required win conditions are met, which is relatively easy. Red wins by an output being fired from a mapper-placed team_round_timer point entity when its timer hits zero. Just find the entity, delete the output and add a new one to trigger your end-round event of choice. Blu wins when they capture all of the control points (Steel automatically grants Blu team all the points if last is capped before the others). This is automatic, but can be prevented by changing a setting in the team_control_point_master point entity. Under the "Restrict team from winning" option, change the dropdown from "Red" to "Both". This should stop Blu from winning once all the control points are captured. To fire an output when Blu caps all control points, select the trigger_capture_area brush entity around point E and add an output, "OnEndCap" or "OnCapTeam2" and set that to do whatever you need. To alert both teams of who won without actually ending the round, you can use a game_text entity (or game_text_tf, but this won't display to players with minimal HUD turned on). I do not know if it is possible to call a truce without spawning some sort of truce-calling Halloween boss. To spawn skeletons, use the tf_zombie_spawner entity and send the "Enable" output to it to start spawning. To end the round after a certain amount of skeleton fighting and have the appropriate team win, fire a RoundWin input to a winning team's game_round_win entity (Red should already have one, but you'll probably need to create one for Blu).
 

Scampi

L4: Comfortable Member
Feb 8, 2017
186
151
Thanks for the help! I'm changing my idea to break the flow of the game less, as calling a sudden truce at the end of a climactic battle would seem, well, anticlimactic. To keep the idea of having to fight through an army of the dead while still providing a reward and challenge to the winners, I'd like to spawn team-coloured skeletons. The winners get still crits and the losers still get humiliated, but now the losers have a chance to survive while defended by friendly skeletons and the winners have an added challenge to test their mettle against more foes. Sounds like fun to me. I'm pretty sure I can figure out how to make this work, but what I don't know is if it's possible to spawn team-coloured skeletons. Is it? I really hope it is...
 

Da Spud Lord

Occasionally I make maps
aa
Mar 23, 2017
1,339
994
Thanks for the help! I'm changing my idea to break the flow of the game less, as calling a sudden truce at the end of a climactic battle would seem, well, anticlimactic. To keep the idea of having to fight through an army of the dead while still providing a reward and challenge to the winners, I'd like to spawn team-coloured skeletons. The winners get still crits and the losers still get humiliated, but now the losers have a chance to survive while defended by friendly skeletons and the winners have an added challenge to test their mettle against more foes. Sounds like fun to me. I'm pretty sure I can figure out how to make this work, but what I don't know is if it's possible to spawn team-coloured skeletons. Is it? I really hope it is...
I don't think so. Neither in the FGD or on the VDC does it list the ability to set the team of a tf_zombie_spawner. You can try disabling SmartEdit, adding the "teamnum" keyvalue with a team number, and testing to see if that spawns a team-colored skeleton, but I wouldn't hold my breath.
 

Scampi

L4: Comfortable Member
Feb 8, 2017
186
151
I've been doing some more testing with skeletons. I think I have the setup I want, but I do have another question. How can I setup a spawner to spawn one skeleton every time it receives an input?

At first, it seemed easy, but then I noticed each spawner would only activate once. So I played around with the settings and discovered that the first time they were enabled, they would stay activated permanently and continuously spawn skeletons until they hit their limit. It's like flipping a lever to toggle them on permanently. That's not what I want. The system I need is: one input (like a push of a button) equals one spawned skeleton without limits on how many. Again, I'm hoping there's an easy way to do this.
 

Scampi

L4: Comfortable Member
Feb 8, 2017
186
151
I don't think so. Neither in the FGD or on the VDC does it list the ability to set the team of a tf_zombie_spawner. You can try disabling SmartEdit, adding the "teamnum" keyvalue with a team number, and testing to see if that spawns a team-colored skeleton, but I wouldn't hold my breath.
Another question, what is a team number? What values would I use for red and blue?
 

Powerlord

L3: Member
May 8, 2010
127
60
Another question, what is a team number? What values would I use for red and blue?
RED is always one value lower than BLU. However, I don't know if it's looking for 1 and 2 or if it's looking for 2 and 3 (because internally, the teams are 0 for undefined, 1 for spectator, 2 for RED, 3 for BLU, and 5 for regular MONOCULUS!)
 

Da Spud Lord

Occasionally I make maps
aa
Mar 23, 2017
1,339
994
I've been doing some more testing with skeletons. I think I have the setup I want, but I do have another question. How can I setup a spawner to spawn one skeleton every time it receives an input?

At first, it seemed easy, but then I noticed each spawner would only activate once. So I played around with the settings and discovered that the first time they were enabled, they would stay activated permanently and continuously spawn skeletons until they hit their limit. It's like flipping a lever to toggle them on permanently. That's not what I want. The system I need is: one input (like a push of a button) equals one spawned skeleton without limits on how many. Again, I'm hoping there's an easy way to do this.
On my map arena_skeleton_strike, I experienced a similar problem. The solution is to disable the spawner after enabling it. If you're doing this repeatedly, for the sake of ease you may find it easier to set up a logic_relay for each (group of) spawner(s) that automatically enables the spawner(s) and then disables them almost immediately after. If the spawner(s) are spawning multiple skeletons at once and you don't want to time how long it takes each spawner to spawn its skeleton count, you can disable and then enable it (rather than enabling and then disabling).