AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   [CS:S] Timer 1.0.7 (https://forums.alliedmods.net/showthread.php?t=189751)

alongub 07-10-2012 13:21

[CS:S] Timer 1.0.7
 
1 Attachment(s)
Timer

Quick questions, comments, concerns? You can reach me quickly in the SourceMod IRC Channel: #sourcemod

The most recent source code is available at this project's GitHub repository: https://github.com/alongubkin/timer

About
Timer is all about the competitive Bhop, Trikz and XC experience.
  • It is completely modular and extensible.
  • It measures the time and jumps it takes players to finish the map.
  • Players can choose their level of difficulty. You can add up to 32 levels of difficulty, and change their physical effects on the player.
  • It has an advanced world record system.
  • A map start and end is determined by map zones. You can add map zones in-game (video). There are also glitch map zones, that try to stop players from exploiting map bugs that can possibly be used to cheat the timer.
  • It has a HUD that displays players their current timer (or if you're a spectator it displays the timer of the player you're spectating).
  • It supports MySQL, and theoretically SQLite too (but because of a bug in the old version of SQLite that SM uses, the WR module currently doesn't work with SQLite).
  • It supports Updater by GoD-Tony.
Some of its functionality existed in some form in cP mod, among many other features. This plugin is much more focused. It is also modular and extensible - which means you can enable and disable any feature of the plugin, and developers can easily integrate it with their own plugins. If you need the checkpoints functionallity of cP mod, you can use other plugins such as SM_CheckpointSaver.
Modules
Unless stated otherwise, all modules work independently and do not require other plugins/modules to be loaded. The one exception being timer-core.smx, which is required for the timer to work at all. This means that any modules which you are not using can be disabled.
Core - timer-core.smx
The core component of the Timer. It is required for the timer to function. It provides the most of the API, as well as the following commands for players:
  • /restart - Restarts your timer. If the map zones module is enabled, it will teleport the player to the start map zone.
  • /stop - Stops your timer.
  • /pause and /resume - Players can pause their timers, and move around the map. When they resume the timer, it'll automatically teleport them to where they paused it.
Physics - timer-physics.smx
You can configure different levels of difficulty in your server. Every level of difficulty has certain effect on the player who chooses it. You can easily add or remove levels of difficulty, and change their effects on the player.

For example, one can create an 'easy' difficulty with low gravity and auto jump enabled, a 'hard' difficulty where the A and D keys are disabled, and a 'medium' difficulty with a different value of stamina.

The physics module exposes the /difficulty command that allows players to change their level of difficulty.
Map Zones - timer-mapzones.smx
For every map, you can add different map zones. The plugin has an in-game map zone editor for admins.

Timer currently supports 5 types of map zones:
  • A start map zone that automatically starts the timer for players who inside it,
  • An end map zone that stops the timer for a player and adds a new record to the database,
  • ... and 3 other 'glitch' map zones that try to stop players from exploiting map bugs that can possibly be used to cheat the timer.
World Record - timer-worldrecord.smx
Allows players to view the records for the current map using the /wr command. If the physics module is enabled, it will display different world records for each difficulty. This module supports a console version of wr, in the same way status prints results.

It also provides the /record and the /record <name> commands to view your or another player's record for the current map. In addition, it provides the /delete command, that allows you to delete any of your records in this map.
HUD - timer-hud.smx
The HUD module adds a constant hint message for players, showing them their timers. Usually, it shows the time since the timer started, jumps, speed and best times for this map. If the physics module is enabled, it also shows them their current difficulty.

If you're currently spectating someone else, it will show you his timer.
Logging - timer-logging.smx
The logging module has 5 different levels of messages: trace, debug, info, warning and error. It logs to sourcemod/logs/timer-<date>.txt. You can configure the minimum type of messages that you want in your log (for example: warning and errors only), in configs/timer/logging.cfg.

Installation
Just download the attached zip archive and extract to your sourcemod folder intact. Then navigate to your configs/ directory and add the following entry in databases.cfg:

HTML Code:

        "timer"
        {
                "driver"                        "mysql"
                "host"                          "<your-database-host>"
                "database"                      "<your-database-name>"
                "user"                          "<username>"
                "pass"                          "<password>"
        }

The plugin will automatically create the necessary tables.
Configuration
For most modules, there is a corresponding cvar configuration file located in cfg/sourcemod/. They will be prefixed with "timer-".

Besides the cvar configuration files, there is the levels of difficulty configuration, in configs/timer/difficulties.cfg.

For every map you want to use the Timer in, you'll need to add map zones. I've created a simple video tutorial on how to do it: http://www.youtube.com/watch?v=YAX7FAF_N8Q
Changelog
The most recent source code is available at this project's GitHub repository:
https://github.com/alongubkin/timer

1.0.7 (9 February 2013)
  • Added flashbang count for Trikz maps.
  • Optimized anti-prespeeding.
  • Added rank natives.
  • Added the timer_three_axis_speed cvar.
  • Added optional forward button prevention on difficulties.
  • Added native for some anti-cheats.
  • Added the OnTimerPause, OnTimerResume and OnTimerDeleteOneRecord forwards.
  • Added the Timer_Pause and Timer_Resume natives.
  • Added cvar timer_drawzones.
  • Added cvar timer_hud_update_time.
  • Add total number of records to Records Title.
  • Added French translations, thanks to blacklagoon.
  • Added the Timer_GetBestRecord native; deprecated Timer_GetBestRound.
  • Many, many other improvements and bug fixes based on your feedback.
1.0.6 (4 August 2012)
  • Updated translations.
1.0.5 (3 August 2012)
  • Added an advanced logging module, configurable in configs/timer/logging.cfg.
  • Added support for anti pre-speeding in start zones, configurable using the timer_stopprespeeding cvar.
  • Added an option for admins to remove all zones from the current map.
  • The admin delete record menu now allows to delete records of players who aren't connected to the server.
  • Fixed cvar handling in some modules.
  • Added the sm_deleterecord and sm_deleterecord_all admin commands.
  • Added time difference in the finish map message.
  • Added Portuguese translations.
  • Added the timer_showjumps cvar, that sets whether or not jumps are shown in some messages.
  • Improved some messages.
  • Removed the timer_resetbeforestart cvar, this is now always enabled.
  • Improved auto bhop in timer-physics.
  • Fixed the ground map zone bug.
  • Fixed some memory leaks.
  • Removed loghelper dependency.
  • Reduced smlib dependency to smlib/arrays only.
  • Other minor improvements and bugfixes.
1.0.4 (23 July 2012)
  • Fixed a memory leak with SQL connection handling in timer-core, timer-mapzones and timer-worldrecord.
  • Fixed a memory leak with difficulties loading in timer-physics.
  • Implemented GetClientSerial/GetClientFromSerial in some timers.
  • Now verifying if player is still in-game before sending him the Map Zone Delete message in DeleteMapZoneCallback.
  • Fixed an exploit where players could delete records that do not belong to them in rare situations.
1.0.3 (23 July 2012)
  • Added the timer_restart_enabled, timer_stop_enabled, timer_pauseresume_enabled cvars so you can enable or disable the /restart, /stop, /pause and /resume commands. They are enabled by default.
  • Added support for frags (time) and deaths (jumps). Configurable using the timer_frags and timer_jumps_death cvars. They are disabled by default.
  • Added support for the H:M:S.thousands time format for more accuracy.
  • Changed the HUD update timer to 0.25 for more accuracy.
  • Jumps are now shown in the WR main menu.
  • Added optional support for showing the difficulty menu in player_team. Configurable using the timer_jointeam_difficulty cvar, which is disabled by default.
  • Menu strings are now translated to the client's language.
  • !restart now teleports the player to the center of the start zone.
  • Not considering the vertical component of velocity anymore when calculating speed (again).
  • Fixed a bug where spectators didn't see the timer of the player whom they're currently spectating.
  • Changed the player tracker timer to 0.1 for more accuracy.
  • Added jump count to the finish message.
  • Changed "Map Zones Management" to "Timer Management" in the admin menu.
  • Added an option for admins with the RCON flag to delete a player's record (requires the timer-worldrecord module).
  • Added an option for admins with the RCON flag to delete all records from the current map (requires the timer-worldrecord module).
  • Fixed World Record player sorting.
  • Fixed a bug with difficulty in personal record info.
  • Many other small bug fixes.
1.0.2 (11 July 2012)
  • Fixed Russian translations.
  • Added the OnTimerStarted, OnTimerStopped and OnTimerRestart forwards.
  • Added the timer_resetbeforestart cvar that sets whether or not the timer is restarted in the start zone (disabled by default).
1.0.1 (11 July 2012)
  • Added Russian translations, thanks to Glite.
  • Timers now automatically stop on player_death, player_team, player_spawn and player_disconnect.
  • Not using FormatTime anymore because of a bug in SM in Windows SRCDS.
  • Hour part doesn't show up anymore unless you're actually an hour in to the timer.
  • Fixed the message of the WR module when there are no records and the timer-physics module is disabled.
  • Changed speed units to u/s instead of m/s.
  • Added the timer_hud_* cvars to show or hide specific information in the HUD.
  • Not considering the vertical component of velocity anymore when calculating speed.
  • Fixed a bug where spectators got map records.
  • Not auto-bhopping anymore if the client is on a ladder.

https://www.paypalobjects.com/en_US/..._donate_LG.gif

iDragon 07-10-2012 13:48

Re: [CS:S] Timer (v1.0.0)
 
Great Plugin!
And awsome video.

away000 07-10-2012 14:06

Re: [CS:S] Timer (v1.0.0)
 
Can u add a new feature?

Use Frags for time of the player (and stop frag count with his best time after he finish the map) and use deaths in the same way for jumps....

Maybe the "star" from MPV can be used to show the rank of a player....

Thanks again and will try it soon

alongub 07-10-2012 14:19

Re: [CS:S] Timer (v1.0.0)
 
Quote:

Originally Posted by away000 (Post 1747477)
Can u add a new feature?

Use Frags for time of the player (and stop frag count with his best time after he finish the map) and use deaths in the same way for jumps....

Yes, it's possible.

away000 07-10-2012 14:22

Re: [CS:S] Timer (v1.0.0)
 
Wow, probabily i will change from CP to this ;D, but can u give more options to dificult levels? like easy = gravity+auto jump+préspeed, normal=autojump+pré speed, hard=normal gravity no préspeed noautojump and these kind of things? and make a pannel to choose dificulty on jointeam event....

alongub 07-10-2012 14:34

Re: [CS:S] Timer (v1.0.0)
 
Quote:

Originally Posted by away000 (Post 1747486)
Wow, probabily i will change from CP to this ;D, but can u give more options to dificult levels? like easy = gravity+auto jump+préspeed, normal=autojump+pré speed, hard=normal gravity no préspeed noautojump and these kind of things?

You can do that already.

Quote:

Originally Posted by away000 (Post 1747486)
and make a pannel to choose dificulty on jointeam event....

Good idea, I'll add it in the next version.

away000 07-10-2012 14:35

Re: [CS:S] Timer (v1.0.0)
 
My friend have a part of code who have are of long jump, maybe u can implement a boxarea like start/stop areas for longjumps (with sounds for records :P)

alongub 07-10-2012 14:48

Re: [CS:S] Timer (v1.0.0)
 
Quote:

Originally Posted by away000 (Post 1747497)
My friend have a part of code who have are of long jump, maybe u can implement a boxarea like start/stop areas for longjumps (with sounds for records :P)

The map zones module currently has 5 hardcoded map zones. My plan is that developers can add custom types of map zones so ideas like this one can be easily implemented using a different plugin.

away000 07-10-2012 14:55

Re: [CS:S] Timer (v1.0.0)
 
U can create a module for LJ? I know nothing of coding any language, sourcepawn i know less than nothing ^^

I can give u a hudge amount of ideas for ur plugin.... will only wait this changes and start testing it for myself to check if i think in more ;D

Glite 07-10-2012 17:08

Re: [CS:S] Timer (v1.0.0)
 
The greatest thing that have been done for public bhop community. Thanks man!
I will make Russian translations.


All times are GMT -4. The time now is 10:31.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.