Code Monkey home page Code Monkey logo

mannvsmann's Introduction

Mann vs. Mann

Mann vs. Mann Logo

(Image credit: RatX)

A custom Team Fortress 2 gamemode that mixes Mann vs. Machine mechanics with regular gameplay.

Mann vs. Mann was originally created by Screwdriver and Kenzzer in 2018 for the Red Sun Over Paradise community. Development on it was ultimately stopped and the plugin was never released to the public.

In April 2021, Mikusch decided to remake the plugin from the ground up with many fixes and additional gameplay elements.

Features

  • Fully functioning Mann vs. Machine mechanics in regular gameplay
    • Player and Item Upgrades
    • Power Up Canteens
    • Money Pickups
    • Buybacks
    • Revive Markers
    • ...and much more
  • Compatible with all official game modes (except Mann vs. Machine)
  • Support for custom upgrade files
  • Configurable using plugin ConVars

Requirements

mannvsmann's People

Contributors

blueberryy avatar mikusch 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

Watchers

 avatar  avatar  avatar  avatar

mannvsmann's Issues

Sentry Buster spawning on Engineer carrying built exit

So, today I was being lazy and decided to just experiment with how sneaky I can make the Sentry Buster, example being having it spawn behind enemy lines and such. But during that experiementing I noticed that if you carry a teleporter exit thats already been built, the Sentry Buster will spawn on top of the Engineer. I suspect this is because its locating the teleporter on the Engineer, to which I dont know if this is intentional or not. However I dont see any real way to abuse this either as you'll be making yourself more of a target by being marked for death. Just thought I'd point that out.

(I actually just thought of a way to abuse it. The Engineer can stand in areas where he cant normally build, having the Sentry Buster spawn in places it shouldn't and possibly get stuck)

To replicate this, simply build a teleporter exit at any level and haul it. If the enemy team has an active sentry that meets the requirements to spawn a Sentry Buster, it will spawn on top of you.

Issue when about to level up

I was just test shooting some bots with the brass beast with penetration upgrade, right before getting the exp update.

Then nobody took any damage and I get this error
L 12/27/2021 - 12:04:20: [SM] Blaming: mannvsmann.smx
L 12/27/2021 - 12:04:20: [SM] Call stack trace:
L 12/27/2021 - 12:04:20: [SM] [1] Line 130, d:\tf2server\tf2\tf\addons\sourcemod\scripting\mannvsmann/helpers.sp::SetMannVsMachineMode
L 12/27/2021 - 12:04:20: [SM] [2] Line 66, d:\tf2server\tf2\tf\addons\sourcemod\scripting\mannvsmann/sdkhooks.sp::Client_OnTakeDamageAlive
L 12/27/2021 - 12:04:20: [SM] Exception reported: Array index out-of-bounds (index 8, limit 8)

L 12/27/2021 - 12:05:46: [SM] Exception reported: Array index out-of-bounds (index 8, limit 8)
L 12/27/2021 - 12:05:46: [SM] Blaming: mannvsmann.smx
L 12/27/2021 - 12:05:46: [SM] Call stack trace:
L 12/27/2021 - 12:05:46: [SM] [1] Line 137, d:\tf2server\tf2\tf\addons\sourcemod\scripting\mannvsmann/helpers.sp::ResetMannVsMachineMode
L 12/27/2021 - 12:05:46: [SM] [2] Line 297, d:\tf2server\tf2\tf\addons\sourcemod\scripting\mannvsmann/dhooks.sp::DHookCallback_CanRecieveMedigunChargeEffect_Post
L 12/27/2021 - 12:05:46: [SM] [4] SDKCall
L 12/27/2021 - 12:05:46: [SM] [5] Line 285, d:\tf2server\tf2\tf\addons\sourcemod\scripting\mannvsmann/sdkcalls.sp::SDKCall_CanRecieveMedigunChargeEffect
L 12/27/2021 - 12:05:46: [SM] [6] Line 489, d:\tf2server\tf2\tf\addons\sourcemod\scripting\mannvsmann.sp::OnClientCommandKeyValues

Cant buy back

Sometimes cant buy back
Even when having h bound to action slot item

overflowed reliable channel issue

If players or bots more than 10 try joining the server with mannvsmann plugin, then the clients get kicked out from the server with this message. I can't figure the problem out with this, do you have any idea with this?
image
image

Arena mode max streak scrambles cause buffer overflows

If tf_arena_use_queue and tf_arena_max_streak are set, reaching the maximum streak will cause a buffer overflow. This is because instead of using the regular scramble method, arena moves each team member one-by-one, triggering a refund on each player.

Hook func_regenerate instead of creating func_upgradestation entities

We should be hooking func_regenerate and opening the upgrade menu on touching clients ourselves instead of creating additional upgrade stations.

This would fix some maps with weird brush model indexes not being able to create valid upgrade stations triggers, as well as allowing us to prevent the constant resupply noise while upgrading.

Note: I already tried this a while ago but had trouble closing the upgrade menu on upgrading players after a forced respawn (e.g. on round win)

Frequent server crashes

Every couple of games on a server with this plugin installed, at some point in the middle of a round the server console gets spammed with errors and all players lose connection to the server. These errors continue to rapidly fill the console, and nobody can connect to the server until it's shut down and restarted.
errors_20230512.log

Powerup canteen bug

If a player bought powerup canteens and has any remaining when the plugin is disabled, the canteens do not get cleared and can still be used. However, no actual canteen effects occur from this. Only the sound effect of using a canteen gets played.

gamedata update for windows is needed!

L 07/25/2023 - 21:24:43: [SM] Exception reported: Function signature "CTFPowerupBottle::AllowedToUse" was not found.
L 07/25/2023 - 21:24:43: [SM] Blaming: mannvsmann.smx
L 07/25/2023 - 21:24:43: [SM] Call stack trace:
L 07/25/2023 - 21:24:43: [SM] [0] DynamicDetour.FromConf
L 07/25/2023 - 21:24:43: [SM] [1] Line 207, mannvsmann\dhooks.sp::DHooks_AddDynamicDetour
L 07/25/2023 - 21:24:43: [SM] [2] Line 70, mannvsmann\dhooks.sp::DHooks_Init
L 07/25/2023 - 21:24:43: [SM] [3] Line 252, D:\Development\projects\tf2\other\MannVsMann\addons\sourcemod\scripting\mannvsmann.sp::OnPluginStart

Scout Spectator bug

When you go to spectator after playing as scout, your free cam view in spectator gets locked to following the target you are currently spectating above their head and following the direction they look in. This issue is reproducable and both black_knight and pinkie also had this issue. The issue takes an inconsistent amount of time to start. When the issue starts doorways seem to sometimes let you see into the skybox as if the areaportals were bugging out, maybe its related to those.

AI compatibility

I've noticed that on some maps, mainly ones from cp, koth, plr, and some others, bot players seem to have their AI disabled or their AI just doesn't work. They just sit at spawn.

Most of the maps from pl and ctf seem to have bots work just fine.

I'm wondering if there is a list of maps that bot AI will work properly on or if i will have to experiment myself. Thanks!

Question regarding the explosive headshot

I'm making a gamemode with giant robots, and we are going to make it compatible with this mode.

One question though, how do you get the explosive headshots to work? In regular TF2 adding the attribute does nothing.

I've looked over the code, but I can't find anything that specifically ties it to that attribute.

Does it have something to do with setting the mode to be mvm?

Plugin flooding server console with errors after MvM map is loaded

After loading a Mann vs. Machine map on a dedicated server with this plugin installed, the server console gets flooded with errors, any players who connect to the server immediately lose connection to it, until the plugin gets unloaded (Which is very difficult as the flood of errors makes typing into the server console very hard, and admins can't use the client console either)

SourceMod error log

Refund upgrade doesn't track capture bonus money

Refunding when you have bonus money from captures doesn't properly refund.
Example: Start with 400, capture point and receive 100 to total 500 credits. Refunding will give 400 instead of the expected 500.

Plugin Suggestions

  • Please make it so that the refund upgrades option in the menu only remains visible while standing by a resupply locker, because otherwise it lingers even when one is not close to a resupply locker and gives players the impression that they can refund their upgrades even though they actually can't.
  • A cvar for enabling/disabling the team total credit values showing up when in spectator would be nice to have, as well as a cvar for enabling/disabling the credit values always being shown on screen (if disabled, players will ONLY be able to view how many credits they have by visiting an upgrade station aka the resupply locker).
  • Another cvar for enabling/disabling the automatic voice lines that play from any of the classes in response to a member of their team dying.

ability to see enemy health with mvm_showhealth is reset upon resupply

when a player touches a resupply cabinet (and thus their weapon attributes are reset), they lose the attribute to see enemy health that's given when mvm_showhealth is set to 1. simply swapping loadout or respawning in any way re-applies the attribute, but it should probably be refreshed on resupply as well.

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.