Code Monkey home page Code Monkey logo

who-dun-it-2's Introduction

WhoDunIt
Tag Star Fork Zandronum Mibbit

WhoDunIt

Prepper & Kaminsky Presents: WhoDunIt! (dev version)

Yes, the popular and lazarus murd from whodunit has found its home at Github. Here's how it works:

  1. If you have a Git client, clone this respository. If you don't have a Git client, click "Download ZIP" from the right column of this page.
  2. If you downloaded the ZIP, extract that into a temporary folder that you'll be able to find again.
  3. Execute Wdi_zip.exe and answer the on-screen prompt (enter "pk3" or "pk7" and press enter) and it will compile a build of the mod.
  4. Load the resulting pk3/pk7 file to run the mod.

For further information, see the Zandronum Forums thread. :suspect: Zandronum or contact us on IRC channel: 👥 Discord

Contributions

If you would like to contribute to this repository, please...

  1. Fork
  2. Make changes (please read the contribution guidelines and abide by them)
  3. Create a pull request!

Thanks to all that have contributed so far!

who-dun-it-2's People

Contributors

akmdm avatar prepper25 avatar relax-its-nax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

who-dun-it-2's Issues

The players innocent can get sanity

This issue happen constantly with innocents they take sanity even if they aren't selected like murd acquiring and accumulating sanity, one method is killing rats or just wait to accumulate sanity again (loop) and dropping the sanity through such as elements.
One solution is add flags like undroppable and give the sanity or madmeter only for the murder or class.
Note: removing that loop should be reduce part of the lag of the game.

Improve the murderer selection method; some clients are never getting picked

I think that anytime a group of people are playing, there are several or more clients that never have an opportunity to become the murderer once, as if the function that controls the murderer selection completely skips them. Clients joining/leaving the game might be causing this.

It can be frustrating when one person never seems to be picked while everyone else becomes the murderer several times before them, which isn't fair, so the function should be overhauled to fix this common issue.

Improve the murderer's remote camera; video footage currently doesn't show on HUD

The remote camera is useless in its current state because the video footage does not show on the murderer's HUD accordingly. The CameraTexture used to preview footage should be fixed.

Additionally, should we improve the overall function of the remote camera, and maybe add a CVAR that allows multiple cameras to be installed and viewed individually?

Duplicate firearms and ranged weapons can be picked up

If a player is carrying any ranged weapon (Beretta, Shotgun, M1 Carbine, or Crossbow) and walks into same weapon lying on the ground, they will be able to pick up that weapon, essentially having two or more.

These weapons should be fixed so that players cannot pick up duplicates of the same weapon without "destroying" the other.

Player names used in score screen go missing if client disconnects

If a player disconnects usually before the score screen, their name will not be properly referenced and will print "Player [ID]" instead. This especially happens when the murderer, or the innocent who killed the murderer, leave before their names are printed onscreen.

To solve this, every player's name should be stored in a variable beforehand and updated in case they change their name in the middle of a round.

Players who respawn after death are invisible

If a player dies and then respawns (can happen if telefragged by another player during spawning), they will become invisible, which is because the RenderStyle property of the player is being set to STYLE_NONE upon death.

A solution would be to reset the RenderStyle property to STYLE_NORMAL when the player respawns or do not change it at all. Going with the latter means the player's death states in DECORATE must be changed so two corpses don't show up briefly.

Extra markers appear where there are no innocents

The murderer can sometimes see extra markers on their screen that are not attached to an innocent or a player that's alive. These markers are likely placed on a player start point or a map point that's mistaken for a player. The murderer's tracker script should be revised carefully to resolve this.

Create a Hub for players or Wdi map vote system

Create a new port or hub to select maps for clients or server, this hub has been implemented in ¨WDIEXHUB¨ for clients or players, and not implemented in Wdimain classic (see KEYCONF.TXT system of adminvote).

Make "Puke Script 75" something global/universal for maps/decorations

Players are always complaining about CPU-related lag when playing WhoDunIt. A contributor to the lag might be the large amounts of actor decorations and dynamic lights used in some maps.

Currently, maps like WDI09, WDI10 and WDI18 use a pukable script that removes some actors to optimize performance. I think this feature should be expanded so it's compatible for all maps, and players have the option of adjusting the amount of detail without issues. This should focus only on actors that are purely decorative and do not affect the gameplay in any way.

Backstab glitches; players can be backstabbed near corpses

Sometimes, the murderer can backstab a player without having to approach them from behind. This happens especially around player "corpses".

Dead players are still accounted for in the backstab script, so it's probably creating a false positive somewhere.

Deselecting the chainsaw should be more robust

Currently, it's difficult to drop the chainsaw usually when selecting it. It's especially annoying if the chainsaw is selected by accident and the player cannot drop/deselect it until it's started up.

The chainsaw's DECORATE code should probably be edited to make this easier for players.

Abolish any use of the AltHUD, even if enabled?

The AltHUD can be used by some spectators to be able to see the health of every player especially the murderer. By disabling use of this HUD entirely, it can help against spectators from ghosting at the beginning of a round or having access to information they shouldn't know...

Player translations do not transfer properly to corpses upon death

In some cases when a player dies, its corpse does not share the same color translation as the player itself, so the suit appears green like the default Doom Marine.

This may or may not be happening because of a Zandronum-related issue, but it's something worth looking into.

Small medkits & health can desync upon player's death

Often occurs around death; players will have 35-70 after death, likely because of some delay with the medkits.

Possibly a desync issue involving the inventory item, and should definitely be looked into because it's become a major issue for many players.

The murderer is selected twice in one row

The murderer is selected twice playing two games, in one row even getting a punishment of 5 rounds (default cvar), this issue could be related with the crashes usually when the server restart the same player as murderer is selected again.

Convert WhoDunIt's global script's into Named Scripts

Zandronum 3.0 / ZDoom 2.7.1 supports Named Scripts, which can be used to give scripts a proper name similar to a string. This would be useful for WhoDunIt's core as it can give global scripts are more telling name and significantly reduce the chance of script number conflicts between global/map scripts.

Massive weapon desyncs; firing Crossbow and M1 Carbine with fists

Apparently, there are major desyncs that happen that cause players to fire ranged weapons like the Crossbow or M1 Carbine with their fists. Even if they do this, they do not consume any of the ammunition they have loaded, so no crossbow bolts or bullets are actually being wasted.

Starting maps that take long to load (example: WDI20) might be causing this.

Divided by zero script 419

This is an "enter script" located in classics.acs inside the script 419 exist a poor amount of delay or missed in the first while is my theory, this issue is rarely showed begining the game in console.

Overhaul the current paranoia system to reduce obnoxious team killing

A major problem of WhoDunIt for the longest time is the annoying and excessive team killing that a few players do to ruin the gameplay for the community. Paranoia and the ability to attack any player you see is a part of the game, but the current paranoia system is still lenient enough for obnoxious team killers or trolls to keep at it.

I suggest a major overhaul to the current system to be more strict towards unnecessary team killing, but also fair for killings that have reasons. Here's how the current system works:

  • Currently, when an innocent kills another innocent, they drop their current weapon, all health kits, and are given a yellow aura that reveals them to other players. They cannot heal naturally until their health drops below 30.

  • In older versions, if an innocent kills a second innocent, they would be given a red aura and could be killed by anyone without consequences. However, the current system is designed so it will automatically remove that player from the game instead. It's optional whether we should return the red aura or not.

Here's some ideas I came up with:

  • If an innocent keeps attacking others carelessly almost to the point of killing them, the game should label them as "reckless", and any innocent that kills them in self-defense will not receive any repercussions for that paranoia kill. That way, players should have no hesitation to get rid of those who do nothing but harass the innocents without reason.

  • The system should determine whether a paranoia kill was by accident or not. For example, if a group of innocents are combating the murderer and one innocent kills another through misfire or missed swing, they should not be punished severely as any team killer would.

  • Players who end up team killing are "under watch" based on how many paranoia kills they've gotten. This number can accumulate, but diminishes when a round ends (the number of rounds that must pass in order for this to decrease can be adjusted by the server via CVARs). If a player reaches a certain limit of paranoia kills (also adjustable by the server via CVARs), they could become a free kill or automatically kicked from the game at the start of a new round.

  • Keep track of obnoxious player in case they disconnect and rejoin the server to prevent exploitation of the new paranoia system.

This is so far what I have in mind, but there could me more features to implement to make this system more robust and fair, hopefully being about more quality gameplay that requires teamwork and minimal trolling.

Improve the current scoring system for the murderer

Improve the current way the murderer's score is calculated at the end of a round. Perhaps it's too easy for a murderer to earn 100%, so add a difficulty option for the server.

Sometimes, a murderer can even score 100% without necessarily winning. There can always be that one last innocent that survives, but still earns a perfect score regardless.

Also, Prepper has created some new medals that can be awarded to the murderer based on their item usage. For example, using bertholite canisters or smoke bombs excessively can earn them a unique medal corresponding to that item.

Spectators can sometimes see player's HUD when they're not supposed to

The HUD is displayed depending on whether a player has the inventory items: "HudAlive" and "HudCleaner", the latter of which erases the HUD from the screen.

However, in some games, especially those that reset mid-round, (dead) spectators can still see the player's HUD when they're not supposed to see it at all.

The way that these inventory items are being handled should probably be fixed to prevent this issue.

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.