Commit Graph

268 Commits

Author SHA1 Message Date
rtldg
91ccae3509 add dumb create-all .nav files thing that doesn't work for all the workshop maps which i might make it do eventually 2021-04-01 16:39:33 +00:00
Nairda
cd8bbdf850
update menu drawing time (#1036)
* Update shavit-rankings.sp

* Update shavit-rankings.sp

* Update shavit-hud.sp

* Update shavit-core.sp

* Update shavit-misc.sp

* Update shavit-replay.sp

* Update shavit-stats.sp
2021-04-01 13:44:10 +00:00
rtldg
3a691c1835 replay prop model for tf2 (untested) 2021-03-31 06:33:14 +00:00
rtldg
2beb4dc2ec write nav mesh for potential workshop maps 2021-03-29 14:26:54 +00:00
rtldg
01c0ab9639 preemptively add some stuff for the next replay version format 2021-03-25 04:57:17 +00:00
rtldg
56c3b2af00 +some natives +less resizing for player frames arraylist 2021-03-25 02:05:25 +00:00
rtldg
abb7cbc052 make cloned replay data be owned by the calling plugin 2021-03-25 01:19:21 +00:00
rtldg
807cbc6dfe add some checks so infinite dynamic bots can't be spawned in 2021-03-25 01:18:31 +00:00
rtldg
78ecccf7c4 change some cvar defaults 2021-03-23 10:14:34 +00:00
rtldg
ac784cb7b8 make looping bots spawn when a replay is made 2021-03-23 08:35:52 +00:00
rtldg
dc13f2bdd2 fix replay bugs from bot_quota that only happen on csgo... hopefully this doesn't break it on css now xd 2021-03-23 06:54:25 +00:00
rtldg
84a4f10f22 fix some new replay errors that happen on csgo 2021-03-23 05:45:46 +00:00
rtldg
db575c577b accidentally undid a change 2021-03-22 06:51:27 +00:00
rtldg
916f141c48 rename some variables and stuff 2021-03-22 06:45:02 +00:00
rtldg
8d4ffd443b ReplayStatus/ReplayType -> int. +Shavit_StartReplayFromFrameCache(), +Shavit_StartReplayFromFile(). change replay file reading so i can have a replayfile_header_t which can be used to read stuff in DeleteReplay easier 2021-03-22 05:59:33 +00:00
rtldg
cb63c59352 add Shavit_GetReplayButtons() and fix error in #1033 2021-03-21 09:16:07 +00:00
rtldg
1d4128d874 reorder tickrate grabbing in shavit-replay 2021-03-21 08:37:44 +00:00
rtldg
e9db6dcb02 add Shavit_GetReplayStarter 2021-03-21 02:10:41 +00:00
rtldg
32d5861d04 remove unnecessary if statement 2021-03-19 12:09:50 +00:00
rtldg
c59a2af012 fix some errors in shavit-replay.sp 2021-03-19 10:58:39 +00:00
rtldg
9e43f67fc3 add looping, dynamic, and prop replay bots
changed natives:
Shavit_OnReplayStart, Shavit_OnReplayEnd, Shavit_GetReplayBotFirstFrame, Shavit_GetReplayBotIndex,
Shavit_GetReplayBotCurrentFrame, Shavit_GetReplayTime, Shavit_GetReplayStatus, Shavit_StartReplay

added natives:
Shavit_IsReplayEntity

thanks carnifex for telling me how to make replay props
2021-03-19 03:03:24 +00:00
rtldg
bf7f68faec change all menus to display for at least 5 minutes 2021-03-14 00:03:10 +00:00
KiD Fearless
9dde6c1b06 Remove base.nav and write nav meshes manually
Co-authored-by: rtldg <55846624+rtldg@users.noreply.github.com>
2021-03-13 20:53:04 +00:00
rtldg
8b48ae8c91 add velocity difference
Shavit_GetClosestReplayTime(client, style, track) -> Shavit_GetClosestReplayTime(client)
+ Shavit_GetClosestReplayStyle(client)
+ Shavit_SetClosestReplayStyle(client, style) // to be used eventually for allowing you to change replay style to compare to
+ Shavit_GetClosestReplayVelocityDifference(client, threeD)
+ shavit_replay_timedifference_tick
2021-03-13 08:19:51 +00:00
rtldg
65f58219bd misc changes & stockify GetSpectatorTarget 2021-03-07 03:25:56 +00:00
rtldg
5f59c57c4f brackets and oversights 2021-03-06 09:54:03 +00:00
rtldg
ee11fa10d4 add Shavit_DeleteWR. refactor run deletion & wipeplayer 2021-03-04 05:53:41 +00:00
Joe
83b82f2355
Merge pull request #1016 from deadw1nter/delete_replay
Add map name check to DeleteReplay
2021-03-04 05:19:20 +00:00
rtldg
62862ec2b5 fix persistent_data_t frames being cleared early 2021-03-02 03:12:25 +00:00
Joe
b62352835f
Merge branch 'very_good_yes' into delete_replay 2021-03-01 02:12:30 +00:00
Joe
025e35397b
Merge pull request #1020 from rtldg/replay-file-stealing2
add timestamp to finish-forwards. add Shavit_ShouldSaveReplayCopy and Shavit_OnReplaySaved
2021-03-01 02:05:02 +00:00
rtldg
0e5eef338d newline + path -> sPath 2021-02-28 00:38:47 +00:00
Joe
27dfcd740f add timestamp to finish-forwards. add Shavit_ShouldSaveReplayCopy and Shavit_OnReplaySaved 2021-02-27 19:39:21 +00:00
hermansimensen
423c7299d3 Fix bad replay playback time. 2021-02-26 21:53:56 +01:00
deadw1nter
6ae4ce15d9 Add mapname param to OnWRDeleted 2021-02-24 20:04:34 +08:00
deadw1nter
5eb1c9ab1a Add map name check in DeleteReplay 2021-02-24 10:56:38 +08:00
kidfearless
98af2b4a51 Removed shavit_getstylesettings from shavit-replay 2020-12-04 07:12:04 -07:00
Joe
a1e60b39fa
Multiple bonuses (#982)
* cleanup GetTrackName()

* a few more changes to change mod_zone_bonus & add Track_Bonus_Last

* fix undefined symbol sTrack

* fixup !bwr for multiple bonuses

* fix GetTrackName() after I broke it

* add bonus number param to help text of sm_bwr

* fix !wr after I broke it adding !bwr [bonus number]

* ignore checkpoint zones for now because nothing is ready for them

* update points for bonus #2 through #8 at same time

so instead of something like `9 (track count) * 22 (style count)` queries, it'll do `3 (main, bonus1, rest of bonuses) * 22 (style count)` queries and the rest of the bonuses on the recalc all in the same query
2020-11-30 09:40:45 -07:00
Joe
080c64f8b9
fix ApplyFlags for the replay bot (#977) 2020-11-30 09:37:11 -07:00
KiD Fearless
77676db8ed Tidy up dynamic time difference so that both cheap and expensive methods are available.
dynamic time difference is now disabled by default, and will be using a shortened convar name. it is reccomended that if you do use the cheap method to set it to 2 or 3 as not having an early reference point was the main cause for time skipping.
2020-11-14 07:45:42 -07:00
kidfearless
c52c3c3e79
Add account id validation when deleting replays
* Fixed bugs

* Make it optional

* no empty line

* Update shavit-core.sp

* How can I didn't notice this before
2020-11-10 12:40:53 -07:00
KiD Fearless
b20a2c6762 Update documentation and change some verbage 2020-11-10 12:40:06 -07:00
Joe
e1e7d3bf2e
Don't include preframe count for dynamic time diff (#971)
"Also, when you go back to startzone (not with !r) your dynamic time is not back to 0 when you have more than 10 seconds on the timer (you can have even 30 on it, walk back to startzone, walk out and it will show -10 sec on dynamic timer right away)."
2020-10-17 14:17:12 -06:00
Joe
a4f471479c
grab Z from replay origin for dynamic time diff (#970) 2020-10-17 09:00:41 -06:00
Joe
50805a5d8d
just spectate the bot 4head (#969) 2020-10-15 09:20:46 -06:00
KiD Fearless
596c631861 Revert "begin moving persist replay frames out of shavit-misc"
This reverts commit d2cfeeebda.
2020-10-04 07:47:56 -06:00
Q
d4d51c752d Fixed bugs 2020-08-20 09:44:27 +08:00
KiD Fearless
d2cfeeebda begin moving persist replay frames out of shavit-misc 2020-08-09 13:49:54 -06:00
KiD Fearless
f417730b01 fixup GetClosestReplayTime part 1 2020-08-02 21:13:52 -06:00
KiD Fearless
03775a910f Add convar for max search length for dynamic time differences 2020-07-25 19:48:55 -06:00
KiD Fearless
1e53a1ab81 Optimize Shavit_GetClosestReplayTime 2020-07-25 19:41:51 -06:00
KiD Fearless
f0ecfaf2a7 Add preframe sanity check 2020-07-11 16:58:26 -06:00
Herman Simensen
dec640f2b4
New timer method, tick fractions & StartReplay native (#931)
* Add Convar to restrict noclip in start zone

* remove unused translation file

* Require the enum struct size to be passed to natives

This should hopefully prevent Invalid memory access from plugins compiled on older version of the timer. If an enum struct is changed then plugins compiled on older version of the timer will be forced to be recompiled to match the version they are using.

* Fix save states not tracking preframes

Misc. name changes for natives. And a somehow possible exception fixed when getting a record.

* Add hitbox/center mass cvar (#930)

* Add optional cvar for player center of mass/player hitbox for touching zones

* 2.5.7a Final Changes

fix spelling mistake
add missing optional native
tabify spaces

* Tick offsets, new timing method

Added the tick fraction system from Momentum Mod. Timer is now run within ProcessMovement

* Add StartReplay Native

* Remove debug code

* remove extra gamedata

* Change Hook To Post.

* Increment version

Co-authored-by: KiD Fearless <kidfearless1@gmail.com>
Co-authored-by: Nairda <38843773+Nairdaa@users.noreply.github.com>
2020-07-08 18:00:28 -06:00
kidfearless
48f051f78c
Update very_good_yes from master (#932)
* Add Convar to restrict noclip in start zone

* remove unused translation file

* Require the enum struct size to be passed to natives

This should hopefully prevent Invalid memory access from plugins compiled on older version of the timer. If an enum struct is changed then plugins compiled on older version of the timer will be forced to be recompiled to match the version they are using.

* Fix save states not tracking preframes

Misc. name changes for natives. And a somehow possible exception fixed when getting a record.

* Add hitbox/center mass cvar (#930)

* Add optional cvar for player center of mass/player hitbox for touching zones

* 2.5.7a Final Changes

fix spelling mistake
add missing optional native
tabify spaces

Co-authored-by: Nairda <38843773+Nairdaa@users.noreply.github.com>
2020-07-07 17:37:17 -06:00
KiD Fearless
26c9f0381d Save the proper frame count to the replay files 2020-06-17 19:31:23 -06:00
KiD Fearless
8f0fd02f32 Merge branch 'very_good_yes' 2020-06-16 21:01:24 -06:00
KiD Fearless
2b16a8d2e9 Fix replay bots desyncing after WR 2020-06-16 20:49:45 -06:00
Nairda
469785b80c
Update to current api standards (#922) 2020-06-10 11:45:14 -06:00
Nairda
d1308939bd
Add dynamic timer difference (#921) 2020-06-10 11:16:15 -06:00
Nairda
f2ae4b050d
Fix hud error bug spam in server console and prespeed on replay (#918)
#BlameNairdaIfItBreaks
2020-06-05 22:00:53 -06:00
Nairda
dff6f61145
fix replay bug (#906)
Speculatory fix for "replay bug"
2020-05-05 08:19:54 -06:00
deadw1nter
e753b7bdd8
Remove extra prerun frame, Add dynamic time difference (#890)
* Make clearpreframe optional

* Remove extra prerun frame, Add dynamic time difference
2020-04-25 16:13:52 -06:00
KiD Fearless
1671f8380c Update FormatSeconds to handle negative time
* Remove shavit_hud_prerun_countdown

* Replace %with %%
2020-04-10 11:38:31 -06:00
deadw1nter
91f83e2c2a
Clean up prerun code + Add prerun countdown to hud (#886)
* remove timer preframe variables

* Prerun should only record when you are in start zone

* Make clearpreframe optional

* add prerun countdown to hud
2020-04-10 09:57:21 -06:00
KiD Fearless
3846122367 Change language of prerun convar 2020-04-07 14:16:59 -06:00
deadw1nter
db5ee570f0
Prerun should only record when you are in start zone (#885)
* Make clearpreframe optional
2020-04-07 14:12:32 -06:00
KiD Fearless
9affa982cf remove shavit_replay_maxlength_instart 2020-04-06 10:29:24 -06:00
KiD Fearless
94693fc6d8 overwrite older preframes instead of clearing them upon reaching the max list limit 2020-04-04 13:28:30 -06:00
KiD Fearless
8650fe86b7 always return the actual run time 2020-04-04 12:39:27 -06:00
Nairda
986ebcd427
segmented prespeed fix (#883)
* Update shavit-misc.sp

* Update shavit-replay.sp

* Update shavit.inc

* Update shavit.inc

* Update shavit-misc.sp

* Update shavit-replay.sp
2020-04-04 11:17:31 -06:00
deadw1nter
d8fbcbb780 Implement prerun feature for replay (#882)
* Implement prerun feature for replay

* Update shavit-replay.sp

* Update shavit-replay.sp

* Using blacky's method to handle prerun

I know it is kinda copy-pasta, but it is the best way that I can come up with :(

* I suck at naming 👎
2020-04-02 14:15:19 -06:00
KiD Fearless
53d71509bd Merge branch 'very_good_yes' 2020-03-07 00:47:10 -07:00
Kyle
e75617e191 Fix admin menu
Fix for adminmenu late load or reload
2020-03-07 13:28:31 +08:00
KiD Fearless
ec5888d1f6 Changed pragma dynamic to allow for longer replay bots 2020-02-24 11:20:43 -07:00
KiD Fearless
3283a26d45 Added Convar_class methodmaps for timer convars 2020-01-22 17:16:37 -07:00
KiD Fearless
0313239eed Add check for unset timescales 2019-12-20 11:22:07 -07:00
KiD Fearless
32e994aa18 Added dynamic timescales.
Start zone will no longer enforce 1.0 style speed.
2019-12-19 11:53:21 -07:00
KiD Fearless
c42d14f46d Added Shavit_OnTrackChanged and Shavit_OnReplaysLoaded 2019-12-18 12:14:22 -07:00
KiD Fearless
b2abc371ab Fix Shavit_GetReplayBotCurrentFrame 2019-11-24 11:12:54 -07:00
KiD Fearless
7e1c729bc1 Added "Shavit_GetClientFrameCount" and "Shavit_GetReplayFrames" 2019-08-05 16:31:47 -06:00
shavit
c84815584c Refactored event hooks in replay plugin. Should broadcast events properly now. 2019-07-31 20:19:02 +03:00
shavit
fd121092c8 Refactored database handles so that there are multiple instead of a single one. 2019-05-31 17:32:03 +03:00
shavit
0650d20eff Removed ancient SetPrefix code and put it in a stock function instead. 2019-05-31 17:03:27 +03:00
shavit
547f90ef62 Added automatic database migrations and revamped overall database structure.
Now I can push database migrations without making the plugin's users do the querying on their own.

List of migrations:
* **Converted all SteamIDs in the database from SteamID3 to Steam Account ID format. The difference is simply stripping of the [U:1: prefix and ] suffix. This change speeds up the queries and reduces the database's size by a lot.**
* Removal of `workshop/` paths from all map names in the database.
* Added index to `lastlogin` to speedup the filtering I added to rankings with `shavit_rankings_llrecalc`.
* Removed `country` from database. It was completely unnecessary.
* Converted IP addresses from plaintext to a single 4 bytes integer.
* Converted `date` of records from a string to integer.
2019-05-12 07:57:04 +03:00
shavit
26d5bfa3ba Split replay version loaders
And fixed a bug with old replays where the very first frame wouldn't
be loaded.
2019-05-03 10:56:56 +03:00
shavit
8b2e3357bb Fixed a minor memory leak when loading corrupted replay files. 2019-04-06 01:58:34 +03:00
shavit
38bec72377 Replay subversion 3 (#776) 2019-04-06 01:53:24 +03:00
shavit
39572abfd9 Added persisting timer data (#757). 2019-03-27 19:50:03 +02:00
shavit
6a73893857 Made teleport to last frame of replay playback seamless. 2019-03-27 11:36:27 +02:00
shavit
6f2e5e7c4f Fixed rare bug with replay playback. 2019-03-25 08:42:12 +02:00
shavit
96e856fe29 When !replay fails, display menu will display at the same item. (#763) 2019-03-24 22:37:00 +02:00
shavit
04e1a6fb64 Improved cvar enforcing for replay plugin. 2019-03-09 17:21:20 +02:00
shavit
1d5c63c595 Made transition to last frame of replay much smoother. 2019-03-07 03:38:31 +02:00
shavit
fdf65ca188 Improved replay smoothness.
* Fixed for illogical teleports.
* Improved replay smoothness when teleporting/landing.
* Removed pointless TR.
2019-03-07 03:23:24 +02:00
shavit
9bcc6878d4 Fixed replays breaking unexpectedly at certain interactions.
Example of breakage:
1. Request playback.
2. When the replay playback is about to end (the delay where the bot idles in the end zone), stop the playback.
3. Request playback ASAP.
2019-03-07 01:48:07 +02:00
shavit
8f26d7be0e Added cooldown on playback/stop for regular users. 2019-03-07 01:30:49 +02:00
shavit
0fa1cbd58e Added the ability to stop playback as the requester. (#705) 2019-03-07 01:20:50 +02:00
shavit
283bbc224f Fixed deleted replays not being overwritten. 2019-03-05 00:07:26 +02:00
shavit
08f0224759 Added menu ordering for styles (#681).
Also added Shavit_GetOrderedStyles ofc.
2019-02-24 17:05:39 +02:00
shavit
c767a375b3 Added sm_wipeplayer. (#568) 2019-02-24 15:54:52 +02:00
shavit
6fba2bca9c Added Shavit_DeleteReplay native. 2019-02-24 15:10:08 +02:00
shavit
a712c1daeb Fixed replay HUD time display issues for timescale styles (#689). 2019-02-22 21:21:59 +02:00
shavit
46f5d83c1a !replay now moves you to spectator (#739) 2019-02-22 14:35:32 +02:00
strafe
683e75c474 Remove semicolon after closing brace on enum structs
https://github.com/alliedmodders/sourcepawn/pull/319
2019-02-21 23:32:15 +00:00
shavit
5c0a7cd55c Fixed wrong flags and netprops for fake clients in checkpoints. 2019-02-02 01:02:33 +02:00
shavit
daa291f8ba Fixed attempts to teleport a kicked/non spawning central bot. 2019-02-01 22:57:43 +02:00
shavit
c265a257fe oops 2018-12-29 20:15:30 +02:00
shavit
3114eec03f Got rid of the cached cvars bullshit
protip: don't follow hosties' coding conventions that shit sucks mad dick
2018-12-27 06:42:02 +02:00
shavit
f999073ee2 Structified replay plugin, doubled #pragma dynamic
First chat color in CS:GO is broken.. pending fix
2018-12-26 21:50:42 +02:00
shavit
2ab6c57e1f Refactored whole plugin to use enum structs
SourceMod 1.10 is now a requirement.
2018-12-24 00:31:50 +02:00
shavit
3f7698f612 Merge branch 'master' into very_good_yes 2018-11-03 14:03:10 +02:00
shavit
ab56836314 added sourcetv checks to replay plugin 2018-11-03 10:26:23 +02:00
shavit
9442746a06 readability oops 2018-10-25 01:43:28 +03:00
shavit
fae99ff8d1 optimized replay writing to do less system calls 2018-10-25 01:42:17 +03:00
shavit
2e216dfad1 fixed replay sync when hitting thin teleports while ducking
tested in bhop_frankerz_999xl to see it doesnt randomly teleport, hope this is good
2018-10-25 01:38:04 +03:00
strafe
378fbda924 Fix newline 2018-10-18 21:10:08 +01:00
shavit
37413dd0d6 Shavit_OnReplayStart Shavit_OnReplayEnd #676 2018-10-10 19:33:52 +03:00
shavit
d1d594503e Dropped dynamic arrays for strings, unless necessary. 2018-09-23 04:16:23 +03:00
shavit
619e7da8f7 Made replay plugin not record more frames after going past time limit. 2018-09-22 23:49:48 +03:00
shavit
54c7e2daf4 Increased shavit_replay_timelimit's default to 2 hours 2018-09-22 23:39:39 +03:00
shavit
99bc8b2e59 Fixed memory leaking in shavit-replay. 2018-09-22 23:29:58 +03:00
shavit
81dbdedfba Added !deletemap (#668) 2018-09-15 17:26:11 +03:00
shavit
e6dc81ef59 Added shavit_replay_botweapon (#659) 2018-09-14 00:11:00 +03:00
shavit
b132ed4e08 pretend you didnt see this 2018-09-13 22:23:57 +03:00
shavit
be0b9e6c44 Added shavit_replay_botplususe (#660) 2018-09-13 22:23:29 +03:00
shavit
6ccecd8014 code duplication brothers 2018-06-26 19:27:48 +03:00
shavit
2286344b8f Removed frames ArrayList deletion. 2018-05-14 03:17:56 +03:00
shavit
a572b20b89 Made viewangle recording use verified angles instead. 2018-05-13 21:14:44 +03:00
shavit
49705cf814 Fixed ArrayList ownership. 2018-05-13 21:14:21 +03:00
shavit
9461c29f71 Added my own minimal implementation of a chat processor.
* Removed Chat-Processor dependency.
* Added cvar `shavit_chat_colon`.
* Fixed inconsistencies with default chat messages.
2018-05-08 19:01:29 +03:00
shavit
8be2d1085c Adjusted replays to record when the timer is running. 2018-05-07 18:25:01 +03:00
shavit
2a4ffbb162 Changed bot flag behavior to remove flags when needed. 2018-05-04 14:34:45 +03:00
strafe
b51460fff3 Copy missing style string in shavit-replay + docs 2018-05-03 12:35:32 +01:00
shavit
799d6ba65b Added replay deletion to admin menu. 2018-05-02 10:30:44 +03:00
shavit
0c59af68f1 Always respect shavit_replay_defaultteam. 2018-05-02 09:45:42 +03:00
shavit
99335a54f2 Fixed memory leak with Shavit_SetReplayData. 2018-05-01 22:25:29 +03:00
shavit
f30a99fa14 Fixed a bug when loading a state after finishing the map. 2018-04-30 13:07:56 +03:00
shavit
49d1dc0deb oops 2018-04-30 12:33:00 +03:00
shavit
41c2136b42 Added Shavit_HijackAngles.
This native hijacks the replay recording so that the current tick will have your desired angles recorded to the replay data.
2018-04-30 11:51:50 +03:00
shavit
499a395baf Added shavit_replay_botshooting.
This cvar can allow you to disable attacking buttons for bots. 0 will make the bots not press mouse1/mouse2 at all. 1 will only allow shooting, 2 will only allow right clicking and 3 will allow everything.
2018-04-30 01:10:51 +03:00
shavit
4176d68b86 Fixed errors when saving checkpoints on inactive bots. 2018-03-24 01:46:09 +03:00
shavit
8ec7f0004a Disallowed MOVETYPE_WALK to prevent issues with teleports. 2018-02-16 20:03:46 +02:00
shavit
ee7dd0972f Changed collision group of for bots to COLLISION_GROUP_DEBRIS_TRIGGER. 2018-02-16 20:03:25 +02:00
shavit
c9f2e06cc4 Shorten map name length. 2018-02-16 20:02:46 +02:00
shavit
8b3caf405a Removed trigger hooking from replay bots.
Replay bots will hit triggers/doors. This is necessary to fix an issue that recently got reported on Discord.
This will be problematic only in specific maps such as bhop_addict_v2 or kz_bhop_yonkoma, where music plays when the player has finished the map.
2018-02-16 20:02:34 +02:00
shavit
5e3277062f Fixed replay abortion after playback is done. (#592) 2018-02-06 10:29:45 +02:00
shavit
26fc6e0b38 Tweaked movetype/flag adjustments on bots. 2018-02-02 10:59:56 +02:00
shavit
314406c203 Record entity flags and movetypes in replays. (#579) 2018-01-16 12:04:44 +02:00
shavit
03074283ab Changed arg-less !spec to automatically forward to replay bot. (#574) 2018-01-13 09:54:25 +02:00
shavit
59b5664439 Added Shavit_GetReplayBotType and ReplayStatus enum. (#574) 2018-01-13 09:48:23 +02:00