Git Product home page Git Product logo

vulpes's People

Contributors

shellyherself avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

vulpes's Issues

Add options to ban players by IP

We will also want to replace the default banning commands with commands that ban IPs because no one who plays this game has a legit key at this point.

Oddball commands

These would be good to have.

  • v_sv_ball_delete
  • v_sv_ball_reset
  • v_sv_ball_spawn

Make toolchain configurable for build.

The build script should take a config file so it's more easily customizable. Things like auto installation paths and toolchains shouldn't be hard-coded

Shader transparent z-buffering

We can fix the shader transparent z-buffering issue by giving them a z-offset. We already started on this, but we're going to need to disable this for camouflage shaders as it breaks the fade. Once this is fixed we can make it a default feature.

Convert structures to yaml

All future lua important structures need to be converted to yaml. And there needs to be code to convert this yaml to cpp

Create a testing suite for the Command Handler

This thing is big and perhaps a little messy. And thus it actually is broken in unexpected ways.

Every little thing needs to be tested.

Perhaps we could compile the mod as a standalone program that exists just to run it's tests.

Lag compensation

Don't be like SAPP, front load all object updates on projectile spawn.

Biped sync

Synchronize all biped movement using their existing network objects.

Scenery Sync

Sync scenery object locations and permutations. (Mismatched permutations cause bump lag)

Cache not being used as cache

static PlayerTable** player_table_ptr = reinterpret_cast<PlayerTable**>(sig_player_table.address());
In some places you use static to cache values, but then reassign to that value every time, thus negating any benefits you'd get from caching.

Network Object Cleanup

When there is a heavy amount of object spawning in a halo game they might not be cleaned up properly and stay in the client's game.

Implement command permissions system

designing a permissions system that we'll eventually use for chat commands and rcon.

A good way to differentiate between player commands, moderator commands, admin commands. Potentially also for things other than commands.

Something that can be sanely set up through commands and has sane defaults.

This also involves saving permissions to a file inside the Vulpes folder.

Death Grenade Throw

When you throw a grenade and die before it gets released it does not sync.

CTF crash

When there are no netgame flags for flag locations in CTF the game/server crashes and burns.

core_load is disabled

I caused this. This issue is just so I have an issue to point towards. I might fix this one day. Might.

Projectile Sync

Synchronize all fired projectiles and turn off client-side projectiles.

[lua] Make cprint print all arguments

Currently it only prints one argument. This is because of the old implementation of colored printing. Which is removed now and could also be implemented better.

DoS Protection

Set a max amount of packets per second, per ip address.

Write a C++ version of console_out so we can skip executing assembly.

Right now console_out directly executes game assembly to get the console text to appear on the screen. Recently in the code cleanup we mapped out the console memory structures which should allow us to directly write these outputs to the table in memory that handles them.

This will also allow us to more efficiently take formatted input, as right now all formatted console messages use snprintf to a buffer on the stack of the function that needs to make the print.

Rework hooker

There is a lot of bad things going on in there that need to be addressed.

It was written when I only barely understood the parts of the language that I was using.

Handle filesystem paths better

We should use std::filesystem or something similar.

Right now @gbMichelle can't use std::filesystem because it requires a newer version of mingw, which isn't available on her current operating system. And in her (my own) words "Building this fucking sucks."

Command: v_sv_execute_file

Basically the same functionality as the -execute startup argument. Except for you can execute as many as you want.

Note: Make it so that a file can't execute itself. That would be bad.

Name oddities

Certain characters or sequences in player names can screw up the scoreboard or other related things. Block/remove these characters on join so this cannot happen.

Vehicle damage

When damaging a vehicle with a player in it it does not register as the player inflicting the damage onto the player, similar issue with vehicle destructions.

We need a way to save user settings.

Simple system to set and retrieve values.
Some settings are global.
Some settings are per user.

Needs to save somewhere in the vulpes folder. Vulpes folder can be found in vulpes/memory/global.hpp profile_path() + vulpes/paths.hpp VULPES_PATH. Feel free to add your own sub folder in there.

I am fine with inputting a string for user so your system doesn't need to handle that part. If you do feel interested, the current profile name can be retrieved from vulpes/memory/global.hpp through active_profile_name()

Unit tests can be done with catch.hpp. When adding it to the project I'd put it in util/

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.