Code Monkey home page Code Monkey logo

firefight-reloaded-src-sdk-2013's Introduction

Logo

Project Status: Active โ€“ The project has reached a stable, usable state and is being actively developed.

FIREFIGHT RELOADED is an open-source Source SDK 2013 modification with the goal to combine gameplay elements from Half-Life 2, SMOD, old-school first-person shooters like Quake and Unreal Tournament, and the RPG-styled horde-mode gameplay that ties this mod together.

NOTE: PLEASE NOTE THAT THIS REPOSITORY WILL HAVE UNFINISHED OR BUGGY CODE FROM A NEWER RELEASE OF FIREFIGHT RELOADED. KEEP THIS IN MIND BEFORE COMPILING OR FORKING.

As this is a Half-Life 2/Source Engine mod, a file named LICENCE-VALVE.md is included which includes Valve's Source 1 SDK licence.
All code written by Valve and Bitl are covered by this license.
Code used in FIREFIGHT RELOADED may be used for your Source Engine game/mod, however you must give credit to Bitl if you do use code from this mod into your Source SDK project.

Compiling

WINDOWS:

To be able to build FIREFIGHT RELOADED you will need to download:

  • Visual Studio 2013 or later
  • C++ Build Tools for Visual Studio 2013 (Not required if you already have Visual Studio 2013)
  • Multibyte MFC Library for Visual Studio 2013

Read this for more details: https://developer.valvesoftware.com/wiki/Source_SDK_2013#Source_SDK_2013_on_Windows

You must also run this command in your CMD with administrator privileges in order to get VPC to build a project:

  • REG ADD "HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\10.0\Projects{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" /v DefaultProjectExtension /t REG_SZ /d vcproj /f

Note that the Microsoft Speech API is only required for certain SDK tools.

Creating a solution is as simple as running sp/src/creategameprojects.bat, then opening up the solution in Visual Studio.

LINUX:

Read this first to install the steam runtime and other necessary components.
https://developer.valvesoftware.com/wiki/Source_SDK_2013#Source_SDK_2013_on_Linux
After installing it and other dependencies, do the 3 steps below.

  1. CD to your FIREFIGHT RELOADED git directory, I.E.
    cd ~/projects/FIREFIGHT-RELOADED-src-sdk-2013

  2. Run the steam-runtime. NOTE: Make sure you have the steam runtime installed in /valve.
    bash ./sandbox_setup.sh If you haven't installed the steam-runtime, run: bash ./sandbox_install.sh After it installs, it will start steam-runtime.

  3. Go back to this directory and run:
    bash ./build_fr_linux.sh
    This will update the repo automatically. If you would like to update the repo without building it, run:
    bash ./update_fr_linux.sh
    If you would like to build the repo without updating it, run:
    bash ./build_fr_linux_noupdate.sh

Read sp/game/firefightreloaded/scripts/credits.txt for credits and citations.

This mod uses FMOD. FMOD created by Firelight Technologies Pty Ltd.

forthebadge forthebadge

firefight-reloaded-src-sdk-2013's People

Contributors

bitl avatar breakinbenny avatar deciusmagnus avatar ibrs-4ever avatar ratchet3789 avatar xdshot avatar z33ky avatar

Stargazers

 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

firefight-reloaded-src-sdk-2013's Issues

Crash in studiorenderer

I'm getting random crashes in StudioRenderer.dll. It happens in both release and debug. I can go days without an issue and it can happen several times in a row. Let me know if anyone else is having this problem.

Infinite loop in CAI_MoveProbe::TestGroundMove()

When playing on dm_steamlab against resistance NPCs I pretty consistently get the game to hang after a couple of seconds just standing around.
When attaching a debugger, it seems an infinite loop is responsible for that. I traced the problem down to a potentially uninitialized variable. It does get conditionally initialized in MoveCalcDirect(), but it seems not for the path I'm encountering.
It works (as in doesn't loop infinitely) if one just initializes the variable to 0 in line 328, though I'm not sure about the implications - which is why I also didn't open a PR to "fix" this and chose to open this issue instead.

[Suggestion/Request] Improvements to Custom PlayerModel System

As the title says, it would be good that the system of custom player models was more dynamic, I explain, currently the system only looks for models that are in "models/player/playermodels" The problem obviously lies if you want to distribute your model in a folder because the current system does not review the folder in question and do not precache it by using it very possible crash game when using it (as with the VGUI of model selection so you should use the console if or if) and like the system of voices to The player would be good to be applied this formula (something similar to Obsidian Conflict but that this can use custom voices)

Monstermaker spawnlist selection.

It seems that this looping through the players is occurring for every spawnlist entry, but I'm not sure what this is trying to do? It seems to be trying to the maximum level and deciding whether to spawn a particular entry at the same time? Is the spawn level for an entry supposed to be based on the maximum level?

Overflown damage-type flags

The additional damage-types overflow the 32-bit integer, since DMG_LASTGENERICFLAG == DMG_BUCKSHOT == 1<<29 and we're going 4 more shifts beyond that (DMG_KNOCKBACK == DMG_LASTGENERICFLAG<<3 == 1<<32 and DMG_KICK == DMG_LASTGENERICFLAG<<4 == 1<<33), whereas only up to 2 (up to 1<<31) are possible with a 32-bit int.

I suppose it'd be possible to change the damage-type in to an int64_t, though that change may be a bit iffy to properly carry out throughout the code-base. Perhaps it's possible to reduce the number damage-types back down to 32 in some manner.
Note that damage-types up to DMG_REMOVEONRAGDOLL are normally available for mappers through trigger_hurt.

I have not checked how this issue actually presents itself in-game. Strictly speaking, this is undefined behavior. I would have assumed that practically this would just define these constants to 0, though that'd make these flags useless/"inactive" and I assume such missing behavior would have been noticeable.

Thumb not visible in store dialog.

The thumb, the box thing you can scroll up and down with, is not visible in the shop. I had change one line in ClientScheme.res. At least I think that's what I changed. I can't seem to attach mine, but I believe the line looks like:
ScrollBarSlider.FgColor "Blank"
I switched that to SMODNormal.

[Linux] Crash on Map Load

After debugging, this is returned

Thread 1 "fr_linux" received signal SIGSEGV, Segmentation fault. HashInt (n=-1) at /projects/FIREFIGHT-RELOADED-src-sdk-2013/sp/src/tier1/generichash.cpp:151 151 even = g_nRandomValues[odd ^ ((n >> 8) & 0xff)]; (gdb) quit

from CActivityToSequenceMapping. Cannot find the cause.

[LINUX] Death Notice text doesn't work properly (store and hint text now function)

Current issues:

  • Death Notice Enemy Names are missing (in console and on the Death Notice itself)
  • Wrong/large death notice icon (should be the skull icon like the Windows version, not the main focus but still a good mention.)
  • Missing shop item title text
  • Missing shop button text
  • Reward item name showing up as (null)

I feel the reason why this isn't happening is that the byte size for all of these char values is too low or high for Linux. Will need to experiment with ways to fix this.

Screenshot_20220613_083244
Screenshot_20220613_083337
Screenshot_20220613_083427
Screenshot_20220613_083542

Throwing knives are OP

Throwing knives are infinite and powerful. Two possible solutions:

Knife is singular

  • Will thrown knives be cleaned up with other items lying about?
  • Need to make sure knives are not cleaned up when embedded in any entities that are cleaned up.
  • Can be collected again.
  • More realistic, but more complicated to implement.

Knife has ammo

  • Might be recollectable, but not as big of a deal.
  • Can buy/collect more knives.
  • Don't worry about cleaning up knives when embedded in entities that are cleaned up.
  • Less realistic, but easier to implement.

Not high on my list, but I would like to tackle this at some point. Any input would be appreciated.

New HUD layout.

I reworked the layouts with the following changes:
o Raised up the SuitPower panel which was overlapping some panels below it.
o Shrunk the HudHistory panel to not overlap the ammo at the bottom or death messages at the top.
This file isn't in the repo so I will attach it.
HudLayout.zip

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.