Code Monkey home page Code Monkey logo

crx's Introduction

CRx: ClanRing Xtended Mod

An updated version of the ClanRing Quake1 server mod for competitive multiplayer play. CRx is an all-in-one mod (similar to KTX for QuakeWorld) that supports CA, CTF, TDM, FFA, and other game modes. The mod relies on FTE extensions, so much be run on FTEsv or QSS-M binaries.

Based on the original CRMod, and CRCTF code by JP Grossman.

Changes from the original Source (TODO)

  • link a diff from the CRMOD repo
  • highlight key updates / differences

Compiling the Source (TODO)

  • add clear & complete compilation instructions.
    • compiler should probably not be included in the project, but clear steps on how to compile should be.

Setting up and running a CRMod 2021 server (TODO)

  • add clear & complete server setup instructions
    • how do I add custom maps / make maps votable, etc?

crx's People

Contributors

buckshot41 avatar dsvensson avatar inf1niti avatar sputnikutah avatar timbergeron avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

crx's Issues

post match stats to web api

  • quake server auths to web api (key file stored somewhere?)
    • (sort out auth implementation between quake server & web api - ie. key file stored in /config?)
  • on match end (during autostats), server encodes stats to JSON and posts to the stats endpoint
    • using libcurl/http? This gets complex due to engine differences re: networking
    • alternately using a separate service? complex due to 3p dependencies & platform differences (win/linux/distro/etc).

Improve Custom Maps implementation

Both of the existing solutions for managing custom maps (CRDM & CRCTF) leave something to be desired.

CMaps.exe will only run on windows machines (it didn't seem to work for me either)
recompiling your progs.dat w/crmake each time you add custom maps is also les than ideal.

Is there a better way we can handle this in an FTEsv environment?

add `flagtime` stat in `flagstats`, update `teamstats` for CTF

add flagtime stat (per player and in teamstats)
it should track total time the player/team held the flag during the match.

the current teamstats is also very TDM specific, and isn't the most meaningful data for a CTF match.

suggest a CTF teamstats as follows:

teamstats = {
  score;
  kills;
  deaths;
  captures;
  defenses;
  returns;
  carrierDefenses;
  carrierAssists;
  flagtime;
  quads;
  pents;
  rings;
}

team overlay

Team Overlay implementation

We'd like to get an implementation for team overlay similar to what they have in EzQuake/KTX.

image

For reference, the following code is a good starting point for understanding how the QW implementation works:

Server Side

Client Side

[Feature Request] ghost id memory

if a player gets disconnected, they have their ghost code stored in an alias in the client so they don't have to ask

better yet, anyone with the same IP automatically codes in on join

Make warping easier like ezquake

for anymap on the server I can just type the map bsp name to initiate a vote. make aliases for all the maps. this skips having to type 3 things vs one

CO-OP mode

similar to #31

Should this be part of the same mod, or it's own mod (following the same modernizations etc.)

  • should support loading any SP progs.dat... Not sure how exactly this would work. At least we should add custom support for any major mods (ie. AD, Alkaline, dwell, etc) if "sideloading" a separate progs is not possible.

current download protocol is slow and fails for large files

adding libcurl to QSS (or using FTE's http stuff) would allow us to download assets from a central server, which would also increase the download speeds and mitigate the silent failure issue that happens when downloading large files.

This is a double edged sword though:

  • if the quake server and the file server are out of sync, you can't download the assets
  • if someone loses their password, they can't update the file server (lol /😭)

switching to match/practice mode in CTF reverts to TDM

Issue description

Not super high priority, but switching between practice / match / normal in CTF seems to revert to TDM mode (no hook impulse).

Steps to reproduce the issue

  1. switch to ctf mode in (ctf in console)
  2. switch to practice mode (practice)
  3. try to pull out your hook

What's the expected result?

  • hook should be enabled, CTF mode (previously selected) should persist.

What's the actual result?

  • hook impulse is not registered. Need to type ctf again to switch back to CTF mode.

auto time limit voting

Server setting option from admin to make timelimit voting automatic so it doesn’t need a vote.

all weapons in pre match

Use all weapons in pre match / not ready and ready waiting for others to ready. So I can rocket jump and shoot other people, but they don’t die.

extend progs.dat to include new features [open-ended]

placeholder for suggestions of new stuff to add/support in CRMOD. Things that have been mentioned:

  • misc_model, misc_particles support
  • support for extra features from SP mods (ladder, breakable, turret, etc.)
  • QoL things for mapping?
  • anything else?

NQ prediction integration

@Iceman12k has some POC/WIP code for prediction based on his work in ezquake.

I'm not 100% on how this works. What's involved in implementing it and getting it going? Ideally this is something that can be turned on/off in the server config files.

cc @sputnikutah

chat to discord

Print all console chat to a discord channel to players not on the server can observe chat

2 & 3 arg mode change

Allow mod chang commands to take 3 arguments:

Dm normal dm6
Ctf match ctf3m2
Ctf practice ctf8

admin vote warn

Warn admin their vote will warp the map if they are admin? Accidental admin-abuse

reset match timer if match was aborted or went into overtime

if the match was aborted, say at the 15 minute mark, then when a new match is started the matchtime starts at 15, users have to use timerset to reset it back to twenty, also if the last match went into overtime then the next match to start, starts with a 5 minute timelimit.
i did add

	clanring_timelimit = default_timelimit;
	utils_set_cvar ("timelimit", clanring_timelimit);
	timelimit = (cvar ("timelimit") * 60);

but then it resets the matchtime 5 seconds after the match ends, which affects the discord's #serverstatus channel thinking the match is starting instead of over, waiting for teams.

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.