[FilterScript] SyntaxAnteinoDerby derby mode
#1

Disclaimer: This thing is a work in progress, most things are tested, but bugs may occur. Please report them to me!

I need your help! This thing needs to be tested thoroughly, please pm me if you are interested in supporting and help developing an ambitious project. I would really like to make this a community based product. I already provided the core derby module and are planning great improvements for the future, now let me use your feedback to improve it even further!






Why?
Because everytime in a derby I get pushed off in the beginning it's a long boring wait until I can play again! No derby I've seen yet has done something to amuse the eliminated players in the meantime. I thought it was time to start such a project.

Aspirations
My idea is to create a whole and complex derby which makes it fun for all the players in it. By combining elements of current derby modes and adding new things I want to create a new game that will provide longer lasting fun. To give a short summary, nobody will ever be bored because eliminated players are placed on a platform with rocket launchers enabling them to mess with other players still in the race. But I plan to do more than just that. If you're interested in my future aspirations, scroll down!

Description
The code is fully documented, but here's a summary of achievements so far.

The code can be found in /filterscripts/derby.pwn with the according defines in /filterscripts/derby_defines.inc.

When the derby filterscript is launched, an array is created which contains the information of up to 20 players, this value can of course be changed. The array contains information about the player when they joined the derby as well as information on the status of the player in the derby. The index of this array, which corresponds to a specific player, and thus playerid, is called the derbyId of the player. As soon as there is a sufficient (tunable) amount of players the derby is started. A custom thread keeps track of everything that happens in the derby. As soon as a player falls of the platform / map they are called eliminated and are placed on a high pillar in the middle of the playing field. They are then given a rocket launcher to mess with the remaining players. It takes the rocket about 2 seconds to reach the ground, giving the players some room to drive away from impact zone. A nice little twist here is that the camera viewing angle cannot be rotated to the top of the pillar, so the players can never see the rockets coming. When a certain game time has passed or only one player is left, the game is ended. When a player exits, it will be reset to their old position, health condition and ammunition. There's also an Anti Cheat module (currently out of order) and a /kickvote system to keep the derby fair.

Game rules
There are three main Boolean values in the game which are of great importance:
* derbyStarted
* derbyCountDownStarted
* vehiclesSetUp

In this table, it can be seen what combinations are related to what game states chronologically:


After the first two players joined, a countdown is started, giving other players the time to join. When this timer is hit and there are still enough players, derbyCountDownStarted is triggered. When the countdown is through, derbyStarted is triggered. When the max game duration is achieved or only one player is left the game and its variables are reset.

Players can be kicked for cheating, AFK and kickvote. Nitro is a definable option.

Future aspirations
  • Anti cheat module
  • Moving objects
  • Periodic powerups on the track
  • Roulating worlds/derbies
  • Language modules
Credits
Credits go to the SA-MP for their awesome mod, Zeex for ZCMD, ****** for sscanf2, Incognito for his streamer and last but not least, to GamerZ for his AntiCheat module.

Download
All the files can be found in the github repository: https://github.com/Anteino/SyntaxAnteinoDerby

Screenshots will follow soon. Hope you enjoy it!
Reply
#2

Reserved #1
Reply
#3

Reserved #2
Reply
#4

Nicely, explained, good job.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)