Post news Report RSS February 2011 - New Features

We'll be disclosing a few new features in Zombie Master 2!

Posted by on

Zombie Master 2 started out as an unofficial OB patch, there weren't any plans for adding features and content. Porting ZM took a month to do, manually porting at least 100 files to OB. By the time the port was completed, the idea of turning the patch into a mod was floating around and I finally did it. So here are a few of ZM2's newest features:

point_viewcontrol
The modifications I did to point_viewcontrol were quite simple. When a point_viewcontrol is enabled, all players will have view entities set to it, acting as a cutscene. Each player can exit the cut scene whenever they want without interrupting the other players from watching. I may add an option so it would disable skipping the cutscene.

func_win
Winning/losing has an output now, allowing the mappers to do something special after the game.

Here's the new FGD entry:

@PointClass base(Targetname, Parentname, Origin, Angles) = func_win
Target for the Humans to win or lose the game
[
input Win(void) Human Win
input Lose(void) Zombie Master Win!
output Won(void) : Humans Won
output Lost(void) : Zombie Master Won!
]

func_win_trigger
With the way func_win_trigger is progressing, it could very well replace func_win. Here is a list of its current features:

  • A completely modifiable timer
  • Disallows NPCs in the trigger before winning
  • Only players within the trigger will win

I plan on adding a hud element that displays the func_win_trigger's timer.
Here's the FGD Entry below:

@SolidClass base(Trigger, Targetname) = func_win_trigger :
"A trigger volume that only lets survivors within it win."
[
// Inputs
input Toggle(void) : "Toggles intial active state"
input Enable(void) : "Hides"
input Disable(void) : "Unhides"
input ChangeTimeLimit(float) : "Changes and resets the time limit"
input ModifyTime(float) : "Add or subtract time to the time limit"
input ResetTime(void) : "Resets the Timer"
input ToggleTimer(void) : "Toggles Timer"
input EnableTimer(void) : "Enables Timer"
input DisableTimer(void) : "Disables Timer"
input Win(void) : "Human Win"

// Outputs
output Won(void) : "Humans Won"

Active(integer) : "Active" : 1 : "Is this active on game load? 0 = false"
TimerOn(integer) : "Timer" : 0 : "Is the timer active? 0 = false"
Enemies(integer) : "Enemies" : 0 : "Disallow NPCs in area? 0 = false"
Timelimit(float) : "Time Limit" : 5 : "Time limit for survivors to get to destination ( In Minutes )"
]

func_giveresources
Instead of making an input that would set the ZM's resources to zero, I thought it would be better if I made an input that sets the ZM's resources to whatever you want.

Here's the new FGD entry:

@PointClass base(Targetname, Parentname, Origin, Angles) = func_giveresources :
"Give or take resources from the ZM's stash"
[
input GiveResources(integer) : "Give/Take x resources"
input SetResources(integer) : "Set the ZM's resources"
]

Updated Stubborn Pathing
For those who don't know, stubborn pathing is a ZM feature that tries to fix disturbed paths by finding a new path to use. To improve the chance of finding a new path, I've made it so the new rerouting process repeats an adjusted number of times until it finds a new path to use. If the current path is blocked, the AI navigation will only try harder to find a new path.


Here are five shamblers walking from the train spawn site to selected point. Normally, they would stop a quarter way there.



Here I have ordered 35 shamblers to move from the spawn nearest to the concrete stairway over to the communications tower. A little bit after commanding, the shamblers found themselves stuck between the cargo container and the stairway itself. Rest assured, the stubborn pathing was able to command a portion of the shamblers around the container and up the stairs.

Final notes
We'll reveal more in the next update!

Until then,
Tanner Bondy
ZM2 Team Leader and Lead Programmer

Post comment Comments
wazanator
wazanator - - 761 comments

Man I'm so glad you guys fixed the point_viewcontrol entity. Hope someone comes up with some cool cut scenes for their map!

Reply Good karma Bad karma+7 votes
Elitic
Elitic - - 209 comments

Great work!

But shouldn't func_win be logic_win as it is "@PointClass" and same for func_giveresources ?
Also func_win_trigger shouldn't be trigger_win or func_win ?

This is only my opinion and how I'd name them for better understanding.

Reply Good karma Bad karma+5 votes
bluluxabica
bluluxabica - - 189 comments

finnally the stubborn pathing has been fixed...

Reply Good karma Bad karma+1 vote
nopushbutton
nopushbutton - - 719 comments

func_win_trigger
[...]
* Only players within the trigger will win

What does this mean? What happens to the players that aren't in the trigger?

Cool changes though.

Reply Good karma Bad karma+1 vote
violentdev Author
violentdev - - 417 comments

It means that any survivors outside trigger will lose the round.

Reply Good karma+1 vote
EricFong
EricFong - - 1,585 comments

Can't wait for more.

Reply Good karma Bad karma+1 vote
Awesome_ninja
Awesome_ninja - - 809 comments

wait a minute; isn't it the stuff that have been posted in the dev blog in the forums a long time ago? Ow..... nvm, it's a summary to everyone on ModDB that maybe follow the blog xD
It's coming really well! Good to see the "func_win_trigger" too. Now, people will actually play as a team, and not have 1 group of people doing the objectives, and 1 group of people camping at the back -_-

Reply Good karma Bad karma+1 vote
violentdev Author
violentdev - - 417 comments

It came to our attention that a good number of moddb members didn't read the dev log.

Reply Good karma+1 vote
Zombb-Freeman
Zombb-Freeman - - 165 comments

NICE!!!!! Can't wait until this is done :D I want this more then Black Mesa :)

Reply Good karma Bad karma+1 vote
Zombb-Freeman
Zombb-Freeman - - 165 comments

I want a chrome shotgun in this mod. Anyone agree?

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: