Git Product home page Git Product logo

zmr-game's Introduction

Zombie Master: Reborn

An FPS/RTS hybrid game on Source 2013 engine, supporting Linux and Windows. See more info at our ModDB page!

License

You can read it here.

Building

Windows

  1. Download Visual Studio 2022
  2. Install Desktop development with C++ workload.
    • The required components are: MSVC v143 and Windows SDK 10.0 (10.0.20348.0 tested)
  3. Run src/fix_vcxproj.bat with Admininistrator privileges.
  4. Run creategameprojects.bat in src-folder.
  5. You now have a solution file src/zmr-games.sln

Linux

Follow this tutorial in Valve developer wiki for the steps.

Running

  • Requires Source SDK Base 2013 Multiplayer to be downloaded from Steam. (In the Tools-page)
  • Make sure you have cloned the game-folder submodule (game/zombie_master_reborn).

You can create a symbolic link of game/zombie_master_reborn in your <Steam>/steamapps/common/Source SDK Base 2013 Multiplayer-folder and then run hl2.exe with arguments -game zombie_master_reborn

Or you can use the script below.

Windows Script

Run zmr_dev_setup.ps1 inside game/zombie_master_reborn. There should now be a zmr_dev.bat-batch file in your Source SDK Base 2013 Multiplayer-folder which you can run to start the mod.

Linux

Start hl2 with the Steam runtime. ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ./hl2.sh -game zombie_master_reborn

Final Build

Turning on the conditional ZMR_FINAL in src/vpc_scripts/default.vgc will enable FMOD sound engine and Discord RPC. FMOD headers need to be placed in public/fmod/ (they cannot be distributed here).

You'll also need a copy of the binaries to run the game. (discord-rpc.dll & fmod.dll)

FAQ

Is compiling for Linux really this convoluted?

Yes.

Project refuses to compile, says something about wrong/missing toolset. / Opening the solution says something about upgrading.

Open project settings and make sure Platform Toolset is v143 and Windows SDK Version is 10.0 (latest installed version) or lower. If it says one of them is missing, you need to download them from Visual Studio Installer (Tools -> Get Tools and Features)

Other problems

Just ask Mehis in Discord.

Contributing

Please base all pull requests on the 'dev' branch. If you're planning on something bigger or you want to work on one of the Issues, do contact us so your efforts don't go to waste.

zmr-game's People

Contributors

alanedwardes avatar alfred-valve avatar blixibon avatar bruced-valve avatar devilmudger avatar joeludwig avatar jorgenpt avatar jstasiak avatar k5josh avatar l1pe avatar mikesartain avatar narendraumate avatar neico avatar nephyrin avatar pazerop avatar plesiecki avatar psychonic avatar sortie avatar totallymehis avatar wouterpleizier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zmr-game's Issues

Server uses different class tables.

I just started getting this problem for no reason?
Tried to join a server but this error comes up
Server uses different class tables
I didn't mess with the folders, even tried a reinstall.
I was only working on maps, that's all.

Feature Request: Allow chat colours

No colour manipulation of that chat is allowed (like in 1.2.1), all text appears yellow. The ability to modify the colours produced by plugin text would be nice.

Suggestion: Remove The Default HL2DM Footsteps behaviour to HL2's Style ( No Override The Function )

As it says in the title, to achieve that you must look in the following files:

  • remove in c_hl2mp_player.h
    void PrecacheFootStepSounds( void );

  • remove in hl2mp_player.h
    void PrecacheFootStepSounds( void ); virtual void PlayStepSound( Vector &vecOrigin, surfacedata_t *psurface, float fvol, bool force );

  • remove in hl2mp_player.cpp
    PrecacheFootStepSounds();

  • remove this functions hl2mp_player_shared.h
    void CHL2MP_Player::PrecacheFootStepSounds( void ) void CHL2MP_Player::PlayStepSound( Vector &vecOrigin, surfacedata_t *psurface, float fvol, bool force )

A couple of small Revolver issues

  1. Revolver uses wrong shooting sound event "Weapon_357.Single" instead of "Weapon_Revolver_ZM.Single".
  2. Revolver has no muzzle flash playing when you shoot. It's probably the viewmodel issue, but you should check if it does have anything to do with the code.

Additional option for ZM observer mode

ZM 1.2.1 had this feature and although it was a bug it was very useful. The thing was simple, when you hold Tab (+showscores), you were able to rotate your camera/view without toggling "Free-Cam" mode. It'd be great to get it back in ZMR.

Sprays don't work

It seems the server doesn't want to generate a temp decal (in materials/temp) from the player's spray.
The spraying itself is working, the client just cannot find the temp decal since it doesn't exist.

Seen here:

if ( !filesystem->FileExists( fulltexname ) )

sv/cl_allowupload, sv/cl_allowdownload have no effect.

It seems the problem has solved itself. And I just made this issue...

Fixed: 91e58ce

Cause:

Q_snprintf( custname, sizeof( custname ), "download/user_custom/%c%c/%s.dat", logohex[0], logohex[1], logohex );

Firstperson and Thirdperson Pistol Problem

Going thirdperson with the pistol and shooting couple times and then going firstperson with still, the pistol selected, shooting in firstperson, the gun shoot animation sometimes doesnt play when shooting but sometimes it does, it is literally still sometimes when shot.

zm_giveresources

The old cheat command zm_giveresources is missing. It was useful for testing things.

Spectate Ctrl menu is broken

Pressing ctrl when spectating opens the default source spectator menu, but pressing it again does not close it, leaving you stuck with it open until a team change.

Zombies cannot damage props?

Shamblers no longer seems to damage props directly other than the damage the props take on impact with something. That or the damage they do is very reduced.

Shamblers also no longer perform their double handed swipe which did (I think) extra damage to props.

This means shamblers have a very difficult time destroying boxes and setting of barrels directly rather than on impact.

I assume this applies to the other zombies as well, as in 1.2.1, hulks, banshees and immolators could not be ordered to attack props, but if their attacks against a survivor hit a box or barrel in the process then they would damage it.

ZM resource bonus on player death missing.

The resource bonus that used to kick in whenever a survivor died / was killed is missing. The base resource income also diminishes with each player death, stopping at 25 resource points every X seconds.

Character Skins

Our character's skin changes to a random one whenever the options tab is opened or when another one is selected.

Zombie fade-in on spawn is missing.

Zombies in 1.2.1 fade in when spawned (A feature added in 1.2.0). This is missing from Reborn. Possibly a deliberate choice? Which would make sense for hidden spawns, but I personally think spawns from regular spawn points look better with the fade in.

Improve Molotov (Few Suggestions)

Right now, the Molotov is bit, eh.
20170822085046_1
The fire that is produced from the molotov is small, I remember from Original Zombie Master, they were a bit bigger.
Add a breaking glass sound once the molotov hits ground. I think there was a sound in the original.
20170822085059_1
The lighter that produces the fire to light up the molotov, the fire sprite has a black background to it and it is not animated.

NEW! Edit
Make molotovs bounce off walls or set fire to walls. Right now, if you throw a molotov at a wall, the molotov disappears and then fire appears on the floor instead.
Edit again
Or show that the molotov breaks on the walls and fire spits out from the point of molotov breaking to the floor.

'physgun_interactions preferred_carryangles' set in models not working with prop_physics

This has never worked since the original ZM:
When you use a prop_physics that has preferred carryangles set in its model, they don't work.
In ZMR, they seem to be used when dropping the prop as it rotates to the set angles then, but it should use the angles when pickung up the prop (Would be useful for props like chainsaws, blowtorches etc. being oriented correctly when carried).
Just as in the original ZM, the preferred carryangles do work correctly when picking up a func_physbox with the 'Preferred Player Carry Angles' keyvalue set, and the 'Use Preferred Carry Angles' flag set, so maybe looking into how that entity is interacted with could help.

An example of the carryangles set in a model
$keyvalues
{
physgun_interactions
{
preferred_carryangles "-90 0 0"
}
}

func_giveresources currently not in a working state

As far as I can tell, zm_deathrun , zm_tetris_new , and other maps that add resources via func_giveresources are currently not working correctly. I'm not sure if the entity isn't implemented yet, or if you just weren't aware of a breaking change.

I have only checked zm_deathrun's logic to verify this so far, but the creator of tetris_new (and deathrun) has explained to me that he used func_giveresources in those two maps.

For the sake of keeping mapping options open, I would recommend that entity be fixed.

Fall damage is heavily reduced from the original values.

As such a fall from a height which would kill a human in 1.2.1 will allow you to survive in Reborn.

To reproduce:
Open docksofthedead, noclip up and stand on the concrete walls either side of the generator that powers the lights.
Falling from this height onto the ground will deal ~18 damage in 1.2.1, but only deal ~4 damage in Reborn.

"Name Enabler" option?

I guess you remember such a thing on Source 2006 mods, that allows you to change your ingame name without affecting the Steam name. Is there anything you can do about this?

Clear decals for new round.

Currently, decals that are created in the map, stay in fresh new rounds.

Edit
Also, zombie corpses and possibly survivor corpses also arent cleared when a new round starts.

ZM popup windows

  1. There should be an option to switch between classic ZM Trap popup window and the new "dynamic" one that moves around when you're moving. I'm sure that I am not the only one who doesn't like the new one because it's very uncomfortable to play with it like that.
  2. The big "cancel" button in the bottom middle of zombie spawn menu is missing. Re-add it back, please..

Missing details in ZM menu

In 1.2.1, every action in the ZM menu gives a chat prompt and an accompanying chat click sound which made for good feedback (mostly the sound).

Some of the ZM menu options no longer make a chat prompt (Selecting all zombies, Entering physics explosion mode etc)

None of the ZM menu options make the chat click or any sound prompt when selected.

The mouse over text hints explaining each option at the bottom of the screen are missing.

(Mostly I'd just like a sound prompt when selecting abilities)

Banshees don't attack survivors.

Banshees just run up to survivors and don't attack and neither they try to leap at a survivor, the sounds play normally but the attack animation never plays and the survivors never receive damage.

Seems like this issue in particular only happens in some maps like holyhell, debunked and bluevelvet.

Hammer Editor for ZMR (item_ammo_smg1 crash problem)

Trying to add ammo for MAC10. Using item_ammo_smg1.
With the entity tool, I am trying to add item_ammo_smg1 (mac10 ammo) to my map but after left clicking, it literally crashes Hammer Editor all together.
I can add Mac10 ammo using item crates, so the player breaks them and the player gets the ammo without crashing. That is a solution but I am trying to add it independently, on the floor without any use of crates.

Edit
Just noticed this also crashes when using item_ammo_ar2.

Team switching with plugins is broken

Any attempt to force a clients team to change from spectator to human using ChangeClientTeam in sourcemod causes the player to join the human team but retain spectator functionality. They also drop to the floor where they are currently spectating.

The falling down where you are may be related to the fact that spectators are no longer moved to the spawn when the round starts, like in 1.2.1.

Add reappear manipulate timer.

If the manipulation orb (yellow orb) is set to be used more than once, add a key called timer into the properties and the timer can be set to make the yellow orb or manipulation orb to reappear again to be used.

Add healthkits

Maps can choose to go without or with health kits.
It might seem bad or just a plain really bad idea but really, it could be good at times.
I know you can make health kits with prop_dynamic and a trigger_hurt with a negative value, but it would be easier just to place them.
Obviously, old maps won't be able to add any health kits and newer ones being released could choose between an option to add health kits or not into their map.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.