Zwelf
41b5ee9dd8
Make /teamrank
compatible with SQLite
2020-08-03 12:58:52 +02:00
Zwelf
aee73b99dc
Rewrite insert teamrank making code reuse easier
2020-08-03 12:58:52 +02:00
Zwelf
c8d710926f
Fix missing last line
2020-08-03 12:58:52 +02:00
Zwelf
044edbe42b
Make storing teamrank compatible with SQLite
2020-08-03 12:58:52 +02:00
Zwelf
a6df9be98e
Make getting birthday compatible with SQLite
2020-08-03 12:58:52 +02:00
Zwelf
eb4d77f071
Make inserting ranks compatible with SQLite
2020-08-03 12:58:52 +02:00
Zwelf
89ee5944b4
Add missing include
2020-08-03 12:58:52 +02:00
Zwelf
2eb3d23ef4
Rewrite score using the new interface
...
delete file_score for now as it will be replaced by a sqlite backend
2020-08-03 12:58:52 +02:00
Fireball
7e610f9944
Fix sixup players not making sounds when hooking others
...
This also fixes some less noticeable edgecases with ground jump sound: for example, when spectating a tee who is in a solo part.
2020-07-18 19:13:56 +01:00
bors[bot]
37a906d972
Merge #2501
...
2501: Show "Free View" for Sixup r=fokkonaut a=Learath2
@fokkonaut is this enough?
bors delegate=fokkonaut
Co-authored-by: Learath <learath2@gmail.com>
2020-07-13 09:50:48 +00:00
Learath
85a2268b2a
Show "Free View" for Sixup
2020-07-13 11:35:03 +03:00
bors[bot]
38ea723d94
Merge #2433 #2505 #2506
...
2433: Fix votes for sixup r=heinrich5991 a=Learath2
I think this looks sane but I haven't tested it at all for idk how to even test this locally/alone
2505: Fix legacy 64 player serverinfo, don't send duplicate packets (fixes #2495 ) r=heinrich5991 a=def-
For legacy we sent the first packet once correctly, then the 2nd and 3rd
packet without the marker and token at the start, so they never worked.
For new 64 player serverinfo we sent all packets correctly but the 1st
packet twice.
Introduced in #1955 .
2506: Prevent whisper spam from 0.7 (fixes #2504 ) r=heinrich5991 a=def-
Co-authored-by: Learath <learath2@gmail.com>
Co-authored-by: def <dennis@felsin9.de>
2020-07-12 22:58:23 +00:00
def
74197fc027
Prevent whisper spam from 0.7 ( fixes #2504 )
2020-07-13 00:28:47 +02:00
Learath
dd010364ed
Fix double messages
2020-07-12 10:34:36 +03:00
bors[bot]
c4d5c8dfa2
Merge #2478 #2480
...
2478: Use (u)int64 from system.h instead of (u)int64_t from cstdint r=heinrich5991 a=def-
src/game/client/prediction/gameworld.h:62:90: error: ‘int64_t’ has not been declared
62 | void CreateExplosion(vec2 Pos, int Owner, int Weapon, bool NoDamage, int ActivatedTeam, int64_t Mask);
| ^~~~~~~
2480: Send zoom status for dummy too r=heinrich5991 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-07-09 18:31:32 +00:00
def
f4344dc420
Use (u)int64 from system.h instead of (u)int64_t from cstdint
...
src/game/client/prediction/gameworld.h:62:90: error: ‘int64_t’ has not been declared
62 | void CreateExplosion(vec2 Pos, int Owner, int Weapon, bool NoDamage, int ActivatedTeam, int64_t Mask);
| ^~~~~~~
2020-07-09 13:55:28 +02:00
def
5e7a45a49b
Set smaller default area for what distance to show
...
as suggested by fokkonaut
2020-07-08 23:16:30 +02:00
bors[bot]
8a3743fa90
Merge #2474 #2476
...
2474: Remove IP skins r=heinrich5991 a=def-
2476: Use x instead of y in show distance (fixes #2475 ) r=heinrich5991 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-07-08 20:39:01 +00:00
Dennis Felsing
05ed51cf86
Update src/game/server/gamecontext.cpp
...
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-07-08 22:02:36 +02:00
Dennis Felsing
71bd706f2a
Update src/game/server/gamecontext.cpp
...
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-07-08 22:02:31 +02:00
def
2a35121c84
Use x instead of y in show distance ( fixes #2475 )
2020-07-08 15:57:00 +02:00
def
66c7bf8851
Tell why DNSBL isn't allowing to vote ( fixes #2466 )
2020-07-07 23:12:55 +02:00
Learath
fb09f8a6c6
"Translate" the vote message
2020-07-07 13:16:53 +03:00
Learath
95d363b42c
Fix votes for sixup
2020-07-07 13:14:07 +03:00
Zwelf
d0975f9c4b
Fix storing finish on solo server with practice mode enabled
2020-07-02 22:49:30 +02:00
bors[bot]
7266bcad78
Merge #2444
...
2444: Fix erroneous "unable to find all characters" message r=heinrich5991 a=Zwelf
Fixes #2443
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-07-02 15:07:55 +00:00
Zwelf
17bb4522fc
Fix erroneous "unable to find all characters" message
2020-07-02 16:34:36 +02:00
Zwelf
ab9cdc294d
Reset all input after rescuing
2020-07-02 16:24:23 +02:00
Zwelf
538de72c94
Don't load movement and pause state when rescuing
2020-07-02 14:06:18 +02:00
Zwelf
4388579d48
Fix reenabling practice mode after kill on solo server
2020-07-02 11:13:07 +02:00
Learath
f9bf6cf354
Spam protection on /rank
2020-07-01 23:53:25 +03:00
bors[bot]
6da2f117cf
Merge #2425
...
2425: Fix doors not resetting on restart on solo server r=heinrich5991 a=Zwelf
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-07-01 16:10:34 +00:00
bors[bot]
98779776e5
Merge #2424
...
2424: Keep hook when loading r=heinrich5991 a=Zwelf
Solves issue discussed in #2374 . Also keeps direction and jump, which is evaluated when player is in /pause. Fire could be deleted, as it does not affect game play in any way.
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-07-01 16:01:25 +00:00
Zwelf
bff8e90319
Fix loading team sets teamstate to TEAMSTATE_OPEN
2020-07-01 09:03:16 +02:00
Zwelf
9e43f8d483
Add CCharacter::m_ReloadTimer to save
2020-06-30 23:49:40 +02:00
def
1cb9454ab8
Rename showothers2 -> showothers
...
and the old showothers to legacy
2020-06-30 21:38:51 +02:00
def
c3521572ea
Add showothers2@netmsg.ddnet.tw
...
to support cl_show_others 2 properly
2020-06-30 21:38:14 +02:00
Zwelf
6f9dd48401
Fix doors not resetting on restart on solo server
2020-06-30 20:42:01 +02:00
Zwelf
b99bbccd24
Revert "Revert "Fix /save on solo server""
...
This reverts commit 59a7e1f187
.
2020-06-30 20:22:17 +02:00
def
3de5b3a12f
Revert "Revert "Explain why the randomly generated save code is used""
...
This reverts commit 4476ec39f9
.
2020-06-30 20:18:58 +02:00
def
4476ec39f9
Revert "Explain why the randomly generated save code is used"
...
This reverts commit 0d887e8b37
.
2020-06-30 20:15:50 +02:00
def
d10cb17e54
Revert "Restore old /save behavior"
...
This reverts commit d169bb1b52
.
2020-06-30 20:15:46 +02:00
Zwelf
839fd08d6a
Check if player still in team when loading hook
2020-06-30 20:13:45 +02:00
def
59a7e1f187
Revert "Fix /save on solo server"
...
This reverts commit 506602d472
.
2020-06-30 18:41:22 +02:00
bors[bot]
5a41318cbd
Merge #2423
...
2423: Only SendChat to clients that exist. Initialize m_Sixup anyway r=def- a=Learath2
#2421
Co-authored-by: Learath <learath2@gmail.com>
2020-06-30 16:25:47 +00:00
Zwelf
7427e41959
Keep hook when loading
2020-06-30 18:09:26 +02:00
Learath
8d8f1d7208
Only SendChat to clients that exist. Initialize m_Sixup anyway
2020-06-30 18:58:44 +03:00
Zwelf
f2b5abb1fb
Keep weak/strong when reloading
2020-06-30 17:52:55 +02:00
Zwelf
949d710597
Fix wrong indention
2020-06-30 17:52:55 +02:00
Zwelf
c9f8cc99b1
Stop searching when player was found
2020-06-30 17:52:55 +02:00
bors[bot]
b96544f8ac
Merge #2413
...
2413: Fix showothers for specchar r=heinrich5991 a=edg-l
Fixes https://github.com/ddnet/ddnet/issues/2410
I also made it use the Alpha on specchars that are on another team.
Co-authored-by: Edgar <git@edgarluque.com>
2020-06-30 12:45:18 +00:00
bors[bot]
3e77272133
Merge #2417
...
2417: Fix out of bounds read in CPlayer::Snap with IsSixup (fixes #2416 ) r=heinrich5991 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-06-30 12:37:37 +00:00
bors[bot]
3f61babae3
Merge #2418
...
2418: Clean and fix style on character snap r=def- a=edg-l
Co-authored-by: Edgar <git@edgarluque.com>
2020-06-30 12:19:34 +00:00
Edgar
5c45f0876b
Clean and fix style on character snap
2020-06-30 14:17:27 +02:00
def
49ba9078f5
Fix out of bounds read in CPlayer::Snap with IsSixup ( fixes #2416 )
2020-06-30 14:08:55 +02:00
Edgar
eb1779f58c
Fix showothers for specchar
2020-06-30 14:04:41 +02:00
bors[bot]
a79b1265df
Merge #2401
...
2401: Client tells server its zoom level (fixes #2087 ) r=heinrich5991 a=def-
and server adapts the visible distance to it
Co-authored-by: def <dennis@felsin9.de>
2020-06-30 10:01:01 +00:00
def
ead2422dcf
Fix practice on solo servers
2020-06-29 19:34:22 +02:00
Zwelf
506602d472
Fix /save on solo server
...
Fixes #2404
2020-06-29 19:34:21 +02:00
def
1782d95d99
Client tells server its zoom level ( fixes #2087 )
...
and server adapts the visible distance to it
2020-06-29 18:59:07 +02:00
bors[bot]
87407be1c5
Merge #2408
...
2408: Don't use %ll format r=def- a=heinrich5991
It's not supported in MSVS. Fix #2407 .
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-06-29 12:17:44 +00:00
heinrich5991
efc4a8abf7
Don't use %ll format
...
It's not supported in MSVS. Fix #2407 .
2020-06-29 13:57:08 +02:00
def
ab22bb9665
Add ; when writing save into file
2020-06-29 11:08:51 +02:00
def
6455689e32
Super team can't be saved/loaded
...
Thanks to Lady Saavik for report
2020-06-29 08:46:34 +02:00
def
1c09798504
Update game id when updating team score
2020-06-27 22:30:14 +02:00
bors[bot]
ec472a9d0a
Merge #2298
...
2298: Log save/load in teehistorian r=heinrich5991 a=Zwelf
Including tests
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-06-26 12:45:08 +00:00
Zwelf
ef2f306067
Fix teehistorian debug output for save/load
2020-06-26 14:37:14 +02:00
Zwelf
d8aab366fc
Log save/load in teehistorian
2020-06-26 00:01:12 +02:00
bors[bot]
00eb2044b2
Merge #2374
...
2374: Restore old /save behavior r=def- a=Zwelf
Fixes #2362 , supersedes #2367
I didn't change the /save message. There are already two different: "Use '/load %s' on %s to continue" and "Use '/load %s' to continue".
I think it would be better to add a NetMessage, this could also solve the problem of saving which team members were in the team.
> I guess this can't be used to cheat anything?
Only if an instant rehook is necessary. Might be useful for rehooking an edge hook (but you still have to aim).
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-06-25 19:43:30 +00:00
Zwelf
0d887e8b37
Explain why the randomly generated save code is used
...
to the player when the database connection failed
2020-06-25 20:44:00 +02:00
Zwelf
d169bb1b52
Restore old /save behavior
2020-06-25 20:42:48 +02:00
bors[bot]
97c7525438
Merge #2368
...
2368: Make spec character rendering a bit cleaner r=def- a=heinrich5991
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-06-25 16:18:20 +00:00
heinrich5991
8c095b2727
Make spec character rendering a bit cleaner
2020-06-25 14:56:23 +02:00
bors[bot]
df66d83a04
Merge #2356
...
2356: Make game less dependend on score backend r=heinrich5991 a=Zwelf
Behavior change:
* `sv_save_worse_scores` is respected on file based servers
Mainly a clean up after #2247 , but helps #2298 too
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-06-25 10:40:02 +00:00
Zwelf
a8abc3937b
Make game less dependend on score backend
2020-06-25 12:36:01 +02:00
Edgar
2f3073c547
fix /spec hook
2020-06-25 10:12:17 +02:00
bors[bot]
bad43e77a0
Merge #2354
...
2354: Set rescue tee immediately after loading (fixes #2248 ) r=heinrich5991 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-06-24 21:37:47 +00:00
bors[bot]
677d92aa32
Merge #2353
...
2353: Fix /spec rendering r=def- a=edg-l
Fixes https://github.com/ddnet/ddnet/issues/2344
Co-authored-by: Edgar <git@edgarluque.com>
2020-06-24 19:29:29 +00:00
def
3530d0ae32
Set rescue tee immediately after loading ( fixes #2248 )
2020-06-24 21:19:46 +02:00
Edgar
b33180ae77
fix /spec rendering
2020-06-24 19:01:01 +02:00
Learath
581904d849
Fix SendChatTarget demo recording
2020-06-24 19:22:41 +03:00
Learath
e122462ae8
Ugly fix for SendChatTarget(-1...). Closes #2337
2020-06-24 18:54:27 +03:00
Learath
b6fb304508
Name change hack for 0.7. Close #2330
2020-06-24 18:14:15 +03:00
bors[bot]
09f60fc919
Merge #2242
...
2242: Use CSaveTee for rescue (fixes #2241 ) r=heinrich5991 a=def-
Untested. Edit: Tested, seems to work.
Co-authored-by: def <dennis@felsin9.de>
2020-06-24 14:51:13 +00:00
bors[bot]
1750bb09f7
Merge #2335 #2336 #2340 #2342 #2349
...
2335: Make it more clear that this is a sixup translation server r=heinrich5991 a=def-
2336: Set skill level for Sixup (fixes #2334 ) r=heinrich5991 a=def-
2340: Keeping multiple states consistent is hard (fixes #2315 ) r=heinrich5991 a=def-
let's go recount every time
2342: Don't forget video recorder fps setting r=heinrich5991 a=def-
after switching to non-videorecorder client
2349: Document which MySQL/MariaDB versions we require (fixes #2343 ) r=heinrich5991 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-06-24 14:37:53 +00:00
Learath
3a9fa693f2
Set LastChangeInfo on a Sixup skin change
2020-06-24 16:25:35 +03:00
def
243be18fb4
Keeping multiple states consistent is hard ( fixes #2315 )
...
let's go recount every time
2020-06-24 14:50:32 +02:00
def
5b3b42b771
Make it more clear that this is a sixup translation server
2020-06-24 14:49:23 +02:00
def
ff4c2c51ec
Don't fail on empty teamtop5
2020-06-24 12:13:18 +02:00
trml
ca36f4787c
Ensure that team state is always sent
2020-06-23 23:57:33 +02:00
Learath
5293f78f22
Translate the emoticon message
2020-06-23 12:25:04 +03:00
def
85f772ba56
Fix array as initializer g++ 4.9 error ( fixes #2320 )
2020-06-23 08:02:09 +02:00
Learath
ce5aca4759
Check for a null CPlayer::m_pCharacter
...
Players need not have characters at all times
2020-06-23 01:36:51 +03:00
bors[bot]
6384ebf13f
Merge #2321
...
2321: Use the 0.7 race features better r=def- a=Learath2
Mostly tested, couldn't test the diffs though as I don't have score set up. It looks good to me though.
Co-authored-by: Learath <learath2@gmail.com>
2020-06-22 16:04:18 +00:00
Learath
62d014d999
Forgot we faked ids for vanilla
2020-06-22 19:02:17 +03:00
Learath
287e3e2a45
Use 0.7 finish messages
2020-06-22 18:08:08 +03:00
def
07830c868f
Fix whitespace in teeinfo.cpp
2020-06-22 15:06:01 +02:00
def
252cda2d49
Use str_comp instead of strcmp
...
error: ‘strcmp’ was not declared in this scope
2020-06-22 14:47:49 +02:00
def
79cb7d14eb
Don't log preprocess nullptr return
2020-06-22 10:06:55 +02:00
def
9d9d5e26e6
Fix double hook sound in 0.7
2020-06-22 09:27:41 +02:00
bors[bot]
39eae1935b
Merge #2312
...
2312: Fix crash when player voting random_map leaves and vote passes r=def- a=Zwelf
Closes #2310
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-06-22 05:47:46 +00:00
Zwelf
b96d8673f3
Fix crash when player voting random_map leaves and vote passes
...
Closes #2310
2020-06-22 00:47:49 +02:00
def
b1ff7d3ef2
Handle invalid packets more gracefully
2020-06-22 00:13:16 +02:00
def
9fccd5ecf6
Fix team rank for long map names
2020-06-21 23:47:45 +02:00
Learath
ea3772ce2a
Don't send redundant commands. Remove /team on clientside.
2020-06-21 17:28:02 +03:00
Learath
35acd21933
Use the racetimer in 0.7
...
Clean up /timer while at it
2020-06-21 17:15:08 +03:00
bors[bot]
4dd72df777
Merge #2297
...
2297: Ingame time is in milliseconds on 0.7 r=def- a=Learath2
Co-authored-by: Learath <learath2@gmail.com>
2020-06-20 17:25:02 +00:00
Learath
28905c4659
Disable timeout for 0.7 clients
2020-06-20 19:52:23 +03:00
Learath
865afa613b
Ingame time is in milliseconds
2020-06-20 17:31:06 +03:00
bors[bot]
17e77d73bb
Merge #2291
...
2291: Make PlayerResult messages an union variant r=def- a=Zwelf
and some small style and readability fixes in sql_score.
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-06-20 12:44:59 +00:00
bors[bot]
a3ab572fdc
Merge #2290
...
2290: Restore old message behavior when using /load and /save r=def- a=Zwelf
Only notify the player initiating /load about the error and don't send
'Loading initiated by ...' and 'Saving initiated by ...' messages resulting
in two messages per /load and /save.
Not sure if the old behavior is better or if we want to keep the new with sending two messages per /save and /load.
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-06-20 12:34:28 +00:00
bors[bot]
07f6e71376
Merge #2289
...
2289: Fix votes called from 0.7 r=def- a=Learath2
Never assume how structures are laid out
Co-authored-by: Learath <learath2@gmail.com>
2020-06-20 12:27:22 +00:00
Zwelf
1e4ccd7cc2
Small style and readability fixes in sql_score
2020-06-20 14:08:38 +02:00
Zwelf
67643e82b0
Make PlayerResult messages an union variant
...
as it is only used for DIRECT and ALL variants and for no other variants
2020-06-20 14:04:08 +02:00
Learath
8d422dfd70
Fix snapping for ninja
2020-06-20 14:24:38 +03:00
Learath
b032eddcb4
Fix votes called from 0.7
2020-06-20 14:22:46 +03:00
Zwelf
673f59d99f
Restore old message behavior when using /load and /save
...
Only notify the player initiating /load about the error and don't send
'Loading initiated by ...' and 'Saving initiated by ...' messages resulting
in two messages per /load and /save.
2020-06-20 13:03:25 +02:00
bors[bot]
4a810091b1
Merge #2284
...
2284: Remove sv_spectator_votes r=heinrich5991 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-06-20 10:46:03 +00:00
def
c53528b92f
Allow spectators to start votes
2020-06-20 11:20:54 +02:00
Learath
6db72b2388
Times are no longer negative in 0.7
2020-06-20 11:59:46 +03:00
heinrich5991
e294da41ba
teehistorian: Track whether clients join via the 0.7 protocol
2020-06-19 22:06:39 +02:00
Learath
75e96aa5d3
Get rid of more magic constants, adapt to 0.7
2020-06-19 21:48:48 +03:00
Learath
623ba68c19
Fix an oversight on skin conversion and some UB
2020-06-19 20:28:55 +03:00
Learath
ddaea93e60
Implement the new Chat Commands protocol
2020-06-19 20:28:55 +03:00
Learath
1d4ea6c41b
Drop clients properly
2020-06-19 20:28:55 +03:00
Learath
d794520748
Remove forgotten debug messages
2020-06-19 20:28:55 +03:00
Learath
effa964f08
Translate playerflags
2020-06-19 20:28:55 +03:00
Learath
df42ce8b16
Send gameinfo correctly
2020-06-19 20:28:55 +03:00
Learath
32fb6718dd
Allow joining TEAM_SPECTATOR
2020-06-19 20:28:55 +03:00
Learath
4067e711ef
More template magic. Cleans up 'send-to-all-sixup'
2020-06-19 20:28:55 +03:00
Learath
9e2434c65d
Better skin colors. Better game message translation
2020-06-19 20:28:55 +03:00
Learath
1514a6df85
Fix NetObj translation, fix sounds
2020-06-19 20:28:55 +03:00
Learath
46a7b6de2c
Fix some oob access
2020-06-19 20:28:55 +03:00
Learath
9dc1a0357a
Get /spec working
2020-06-19 20:28:55 +03:00
Learath
e81c718180
Rework netobjs, fix chat
2020-06-19 20:28:55 +03:00
Learath
eff28c658a
Fix server messages
2020-06-19 20:28:55 +03:00
Learath
939b45a0aa
Actually remove duplicate message
2020-06-19 20:28:55 +03:00
Learath
465fd570e0
Implement whispers
2020-06-19 20:28:55 +03:00
Learath
25664da121
Remove duplicate message
2020-06-19 20:28:55 +03:00
Learath
974b373ec2
Translate Damage Indicators
2020-06-19 20:28:54 +03:00
Learath
03070d0567
Fix many issues
2020-06-19 20:28:52 +03:00
Learath
807c92f1a4
Generate the 0.7 protocol
2020-06-19 20:27:15 +03:00
Learath
b0e5a37fa9
Do message translation differently
2020-06-19 20:27:15 +03:00
Learath
5000b248bb
Fix things
2020-06-19 20:27:15 +03:00
Tim Schumacher
442148a194
Begin work on 0.7 support
2020-06-19 20:27:15 +03:00
bors[bot]
7d428676e2
Merge #2263
...
2263: Fix /spec + super bug r=Learath2 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-06-18 22:17:43 +00:00
def
e38cd6b6f2
Fix /spec + super crash ( fixes #2262 )
...
Thanks to Learath2 for finding a better solution.
2020-06-18 23:54:05 +02:00
def
79ef6c0e84
Use CSaveTee for rescue ( fixes #2241 )
2020-06-18 23:41:37 +02:00
def
2c7f4c71aa
Minor code style fixes in sql_score.cpp
2020-06-18 23:03:53 +02:00
def
7aed6476dc
Allow larger map names
2020-06-18 18:29:27 +02:00
def
6fcb8abbd0
Initialize m_SqlRandomMapResult ( fixes #2272 )
2020-06-18 08:18:33 +02:00
def
b3d22204c3
Update credits
2020-06-17 23:23:27 +02:00
bors[bot]
98b448ebcc
Merge #2247
...
2247: Thread safe SQL interaction r=def- a=Zwelf
This PR intends to make the database interaction thread safe and optimizes some SQL queries. This is still a WIP, but since it is a rather big PR I wanted to get feedback early on.
Benefits:
* remove race conditions leading to undefined behavior and potential crashes
* logging game related database results in teehistorian would be possible
Behavior change:
* /top5team prints ranks in reverse order when passing a negative number (like /top5, /top5points)
* Optimize SQL statements for /rank /teamrank /top5 /top5team /points /top5points
* /load without parameters doesn't pass the SQL error to the user (as most other functions)
* Simplify IScore interface
* Add UUID to /save table (update of database schema necessary):
```
ALTER TABLE record_saves ADD SaveID varchar(64);
```
* /save immediately kills team and loads it again if the database insert fails.
still TBD:
* [x] saving (team) score when finishing
* [x] loading team save
* [x] loading initial time and birthday check
* [x] /map and random map votes
* [x] RFC: generate a passphrase (2-3 word) if save-code exists or no save-code is given making /save failures much more rare and save-codes more secure
* [x] clean up code (removing now unused structs, ordering of functions in IScore)
Co-authored-by: Zwelf <zwelf@strct.cc>
2020-06-17 19:35:45 +00:00
Zwelf
f1b2ff086c
Clean up thread safe SQL refactor
2020-06-17 21:15:07 +02:00
Zwelf
9f15acdbee
Thread safe random_unfinished_map and modified sql statement
2020-06-15 11:14:15 +02:00
Zwelf
afe96ed69c
Thread safe random_map
2020-06-15 11:14:15 +02:00
Zwelf
7f4dc2bb4e
Thread safe /map
2020-06-15 11:14:15 +02:00
Zwelf
ea31171873
Generate passphrase for save-code
...
* when none is given
* if the given save-code already exist
* if the database connection fails therefore it can't be checked if the save-code already exists
Using the short word list from eff:
https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases
2020-06-15 11:14:15 +02:00
Zwelf
528ca377ed
Thread safe saving of team score
2020-06-15 11:14:15 +02:00
Zwelf
13c80fdc56
Thread safe saving of score
2020-06-15 11:14:15 +02:00
Zwelf
5dcb6f3b0d
Thread save Init
2020-06-15 11:14:15 +02:00
Zwelf
c278d8dbc3
Read SaveID from database on /load
2020-06-15 11:14:15 +02:00
Zwelf
dbf6ac88f6
Thread save loading of player time and birthday
2020-06-15 11:14:15 +02:00
Zwelf
e9242f45f1
Thread safe /load
2020-06-15 11:14:15 +02:00
Zwelf
031ac52320
Thread safe /save
2020-06-15 11:14:15 +02:00
Zwelf
f5ebbf59b6
Thread safe /load without paramters
2020-06-15 11:14:15 +02:00
Zwelf
7514e93a8a
Optimize /top5points SQL query
2020-06-15 11:14:15 +02:00
Zwelf
fa8972deb6
Thread safe /top5points
2020-06-15 11:14:15 +02:00
Zwelf
62f3f40c00
Optimize /points database query
2020-06-15 11:14:15 +02:00
Zwelf
0f3f845a7f
Thread safe /points
2020-06-15 11:14:15 +02:00
Zwelf
e37cf5f3cb
Thread safe /times
2020-06-15 11:14:15 +02:00
Zwelf
8fc81e7eca
Reworked PlayerResult to signal finished with use_count == 1
...
Therefore if the sql thread crashes, the result is deleted automatically
2020-06-15 11:14:15 +02:00
Zwelf
1d7289c8f0
Thread safe /top5team and optimize database query
2020-06-15 11:14:15 +02:00
Zwelf
83fbee5f81
Optimize /teamrank database query
2020-06-15 11:14:15 +02:00
Zwelf
a92509a5df
Simplify /top5 SQL statement
2020-06-15 11:14:15 +02:00
Zwelf
9cf28354d7
Thread safe /top5 command
2020-06-15 11:14:15 +02:00
Zwelf
fd44b1dc5b
Reduce boilerplate code needed to start player info requesting thread
2020-06-15 11:14:15 +02:00
Zwelf
f18daa949c
Thread safe /teamrank
2020-06-15 11:14:15 +02:00
Zwelf
e311c39151
Remove unused parameters from IScore interface
2020-06-15 11:14:15 +02:00
Zwelf
68aa157c11
Simplify /rank sql request
2020-06-15 11:14:15 +02:00
Zwelf
eda0bab4bb
Thread safe /rank
2020-06-15 11:14:15 +02:00
Zwelf
91e286f54d
Fix parsing responses from player
2020-06-15 11:14:15 +02:00
Zwelf
76c227a542
Reimplement /mapinfo command
2020-06-15 11:14:15 +02:00
Zwelf
9add354367
Use Template for SqlResult
2020-06-15 11:14:15 +02:00
Zwelf
873f478a82
Rename Debut to Offset
2020-06-15 11:14:15 +02:00
Zwelf
4ee08dcc5c
Remove unused arguments from IScore
2020-06-15 11:14:15 +02:00
Zwelf
69cf72dae4
Adjust file based ShowRank, ShowTeamRank, ShowPoints consistent functions to sql
2020-06-15 11:14:15 +02:00
Zwelf
3d25953036
Ordered functions
2020-06-15 11:14:14 +02:00
Zwelf
a990acc512
Remove existing CRandomMapResult to simplify IScore interface
2020-06-15 11:12:57 +02:00
Zwelf
3af18f5f60
Create shared pointer on demand
2020-06-15 10:59:59 +02:00
Zwelf
0891a0fd51
Remove some unnecessary header includes
2020-06-15 10:59:59 +02:00
Zwelf
8a22cce031
Start of sql refractor
...
* Use atomic integer in thread count for thread safety
2020-06-15 10:59:46 +02:00
Zwelf
add4fab645
Disallow team join while save command is active
2020-06-15 10:59:46 +02:00
Zwelf
7146eb572b
Save error handling clean up
2020-06-15 10:59:46 +02:00
Zwelf
2d7886bf33
Small cleanup
2020-06-15 10:59:46 +02:00
12pm
01092a30c1
add sv_tele_others_auth_level
2020-06-14 19:21:12 +03:00
bors[bot]
3cd35de942
Merge #2236
...
2236: Fix team rejoin logic for sv_team 3 r=Learath2 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-06-02 10:27:13 +00:00
d3fault
b9844ea6ec
Save active weapon with /rescue
2020-05-31 22:39:28 -07:00
d3fault
65906070b6
clarified /practice voting instructions
2020-05-30 20:58:01 -07:00
def
88b65b6def
Newly joined player should not immediately be subtracted from team 0
2020-05-31 00:34:29 +02:00
def
d3b6df97f8
Fix team rejoin logic for sv_team 3
2020-05-30 14:47:34 +02:00
Learath
6d019204f1
No point locking if teams are disabled
2020-05-30 14:07:30 +03:00
def
4cc1bc0cf8
Kill player when /practice is on and they get kicked out of team
2020-05-28 21:50:35 +02:00
bors[bot]
0cd40c61c3
Merge #2218
...
2218: Practice mode fixes & improvements r=Learath2 a=def-
Thanks to NANAMAR for report.
Update: tested, works.
Co-authored-by: def <dennis@felsin9.de>
2020-05-28 16:21:01 +00:00
def
d17e74ee7d
Add sv_practice ( fixes #2227 )
2020-05-28 13:28:10 +02:00
def
b25c75b558
Allow rescuing while falling down even when not frozen
2020-05-28 12:59:45 +02:00
def
cacf17bd96
Save weapons as well with /rescue ( fixes #2225 )
2020-05-28 12:59:40 +02:00
def
c00759a0ed
Turn off practice mode and reset practice wishes when locked team dies
2020-05-28 12:59:31 +02:00
def
68132350b9
No cheating through noob filter with practice and then leaving team ( fixes #2224 )
2020-05-28 12:06:56 +02:00
def
fb90990d6d
Allow /rescue mid-flight
...
Thanks to Skeith for the suggestion
2020-05-27 23:48:17 +02:00
def
3cbd75b840
Make /rescue work in deepfreeze
...
Thanks to NANAMAR for report
2020-05-27 23:27:30 +02:00
heinrich5991
941d3aa8a0
Some formatting
2020-05-27 20:03:11 +02:00
heinrich5991
209726552b
Remove unused Sv_PlayerTime
game message
2020-05-27 20:03:11 +02:00
bors[bot]
92fc95d742
Merge #2202
...
2202: Send DDNet version early in the connection process r=Learath2 a=heinrich5991
This gets rid of the problem that we don't know whether we should send
full snapshots to clients because they haven't told us about them being
DDNet yet.
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-05-27 17:49:31 +00:00
bors[bot]
438dc519d6
Merge #2212
...
2212: Use a consistent PRNG on all platforms r=Learath2 a=heinrich5991
I just used glibc's because that is what we use on all the servers. Based on https://www.mscs.dal.ca/~selinger/random/ .
Behavior change: The PRNG is actually seeded now.
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-05-27 16:14:09 +00:00
def
6b95bc2636
Fix team save practice reset
2020-05-27 17:58:08 +02:00
def
e1849ad1bb
Implement /practice for teams
...
As discussed on Discord today, can be enabled inside of teams on the fly
during each run on any server. Finishes don't count. I haven't tested
save/load yet, would do that live on the server if this can be merged.
2020-05-27 17:33:26 +02:00
Zwelf
fab1cde94e
Rename variables for consistency
...
The following member variables:
* m_name to m_aName
* m_String to m_aString
* m_CpCurrent to m_aCpCurrent
* m_Switchers to m_pSwitchers
* SavedTees to m_pSavedTees
2020-05-26 21:49:58 +02:00
heinrich5991
c9c7f947b5
Use the PCG-XSH-RR PRNG instead
...
This came from a long discussion comparing PCG-* against xoroshiro*. Do
not generate integers without bias because it doesn't affect us very
much and it is easier to reimplement with modulo.
2020-05-26 10:59:49 +02:00
heinrich5991
b488be018f
Actually seed the PRNG on each round
2020-05-25 15:19:29 +02:00
heinrich5991
2692f3c758
Use a consistent PRNG on all platforms
2020-05-25 15:19:29 +02:00
bors[bot]
64f78fced9
Merge #2205
...
2205: Implement /unlock & clarify the /help lock text r=heinrich5991 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-05-24 20:24:02 +00:00
bors[bot]
f18c42c5ba
Merge #2208
...
2208: Implement /load without params to show some info r=Learath2 a=def-
about your existing saves. Not the code of course, but only how many saves you have and when you last saved on this map.
Co-authored-by: def <dennis@felsin9.de>
2020-05-23 20:20:12 +00:00
bors[bot]
5cddef7efe
Merge #2209
...
2209: singular player in team start message r=Learath2 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-05-23 20:12:36 +00:00
def
a412773e5a
Fix name schema for char-arrays
2020-05-23 21:55:22 +02:00
def
7c966bebc3
singular player in team start message
2020-05-23 21:53:12 +02:00
def
c45995a010
Implement /load without params to show some info
...
about your existing saves. Not the code of course, but only how many
saves you have and when you last saved on this map.
2020-05-23 19:46:12 +02:00
def
37e0a33da2
Also introduce /unlock as an alias of /lock 0
2020-05-23 17:55:56 +02:00
def
d4452dd6e0
Clarify the /help lock text
2020-05-23 17:15:04 +02:00
heinrich5991
0d7872c79e
Send DDNet version early in the connection process
...
This gets rid of the problem that we don't know whether we should send
full snapshots to clients because they haven't told us about them being
DDNet yet.
2020-05-22 17:58:41 +02:00
Zwelf
8bdf41c1b5
Break save/load string into multiple lines
2020-05-21 18:04:15 +02:00
Zwelf
71b687cbd6
Remove unused ConSaveTeam, ConLoadTeam declarations
2020-05-21 00:44:30 +02:00
Zwelf
61787168a6
Rename aGameUuid to m_aGameUuid for consistency
2020-05-20 22:22:02 +02:00
Zwelf
cd015c5e37
Fix storing incomplete game uuid on /save
...
Previously the formatted game uuid was cut off after 15 bytes.
Therefore only 52 out of 128 bit of the uuid were stored.
introduced in 69fd7f1767
2020-05-20 22:18:14 +02:00
heinrich5991
044aee2846
Fix compilation with mysql enabled
...
Caused by #2171 's 850f8e3f27
.
2020-05-18 00:29:15 +02:00
Dennis Felsing
898b4ce4b9
Merge pull request #2171 from Chairn/pr_loadsaveprintname
...
Print name of requester when saving or loading team
2020-05-16 17:41:34 +02:00
Chairn
850f8e3f27
Store client name in CSqlTeamSave/Load to ensure correctness of requester's name
2020-05-16 16:36:16 +02:00
Learath
eacc56059b
Keep ticks going
2020-05-15 19:29:34 +03:00
Learath
5e02bb5a23
Extend antibot interface
...
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-05-13 23:39:40 +03:00
Dennis Felsing
7aa69188b5
Merge pull request #2172 from fokkonaut/master
...
Fix #2162
2020-05-10 10:13:38 +02:00
fokkonaut
92927444d7
Fix #2162
2020-05-09 23:33:12 +02:00
Chairn
fdb275b2f9
Print name of requester when saving or loading team
2020-05-09 19:33:40 +02:00
def
7ae8988dd0
Don't load m_Ammo to fix loads (following #2086 )
...
As reported by Konsti, thanks to heinrich5991 for remembering #2086
2020-05-01 23:51:01 +02:00
bors[bot]
bd3b72e493
Merge #2152
...
2152: Fix whispering to players with quotes (fixes #2151 ) r=heinrich5991 a=def-
Co-authored-by: def <dennis@felsin9.de>
2020-04-30 10:57:29 +00:00
Dennis Felsing
5e213a2619
Merge pull request #2086 from fokkonaut/master
...
Remove setting ammo for freeze to 0
2020-04-30 12:44:40 +02:00
fokkonaut
d460470265
Move comment aswell
2020-04-30 11:49:04 +02:00
def
65a4eb775b
Fix whispering to players with quotes ( fixes #2151 )
2020-04-28 08:54:24 +02:00
def
d50b59b6b0
Add trafilaw to credits
2020-04-07 07:22:38 +02:00
trafilaw
b6c25273f8
Fix compiling error
2020-03-31 03:29:45 +02:00
trafilaw
44cc0e29a4
Remove No reason given
2020-03-31 00:20:25 +02:00
trafilaw
dc0e77f8e2
fix
2020-03-31 00:16:42 +02:00
trafilaw
8d8bc018c6
Add pr_mutereason
2020-03-30 23:51:58 +02:00
fokkonaut
da72907b79
Fix ninja not getting removed
2020-03-24 21:43:26 +01:00
bors[bot]
fb81000351
Merge #2096
...
2096: Fix the double-free of the antibot r=def- a=heinrich5991
I could not find an easy way to ensure that `AntibotDestroy` is only
being called once for each `AntibotInit` but still happening after all
the `CPlayer` destructors.
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-03-24 15:16:24 +00:00
heinrich5991
a7042f7139
Fix the double-free of the antibot
...
I could not find an easy way to ensure that `AntibotDestroy` is only
being called once for each `AntibotInit` but still happening after all
the `CPlayer` destructors.
2020-03-24 15:15:40 +01:00
heinrich5991
d50547ea42
Revert "Fix AntibotDestroy
being called twice"
...
This reverts commit efb3106b71
.
2020-03-24 15:07:01 +01:00
bors[bot]
6e78deb0c4
Merge #2069 #2076 #2095
...
2069: Move global configuration out of client interface r=heinrich5991 a=ChillerDragon
2076: Allow editing multiple tile layer props r=heinrich5991 a=Learath2
Requested by Ravie on discord
2095: Fix `AntibotDestroy` being called twice r=def- a=heinrich5991
The resource deallocation needs to happen in symmetry with the
allocation, otherwise we get unmatched dealloctions leading to crashes.
Allocations happened in `CAntibot::Init`, but it was not guaranteed that
this was called before the destructor.
Co-authored-by: ChillerDragon <ChillerDragon@gmail.com>
Co-authored-by: Learath <learath2@gmail.com>
Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2020-03-23 17:04:15 +00:00
heinrich5991
efb3106b71
Fix AntibotDestroy
being called twice
...
The resource deallocation needs to happen in symmetry with the
allocation, otherwise we get unmatched dealloctions leading to crashes.
Allocations happened in `CAntibot::Init`, but it was not guaranteed that
this was called before the destructor.
2020-03-23 15:35:16 +01:00
fokkonaut
69a6e94833
Fix two bugs
2020-03-17 13:55:30 +01:00
heinrich5991
ed76cd7b12
Fix antibot crash
...
`m_Core.m_HookedPlayer` can be -1 if you get teleported the moment you'd
normally attach the hook.
2020-03-16 14:16:04 +01:00
fokkonaut
d22a1a8f06
Remove setting ammo for freeze to 0
2020-03-16 11:52:53 +01:00
heinrich5991
2574c060e4
Fix antibot crash after map change
2020-03-14 01:44:57 +01:00
heinrich5991
a3163c5b9c
Add support for dynamically loading an antibot module
...
Support for this feature is turned off by default. This feature allows
to integrate with noby's anticheat feature.
2020-03-11 01:58:50 +01:00
bors[bot]
7691227f24
Merge #2066
...
2066: Implement dry saves r=def- a=Learath2
I'm not sure how much I like this but it should be helpful
Co-authored-by: Learath2 <learath2@gmail.com>
2020-02-14 08:02:06 +00:00
Learath2
06e948e944
Cleanup
2020-02-14 00:03:49 +01:00
Learath2
ec42ce88f6
Change command name, refactor error handling
2020-02-13 17:04:58 +01:00
Learath2
27d9ac54b0
Implement dry saves
2020-02-13 16:16:35 +01:00
def
31ae4c4d5a
use pid in file names of temporary files
...
to prevent race conditions with multiple clients running when saving
maps, config on quit, during upgrade
2020-02-12 23:14:30 +01:00
def
598ec52892
Fix GCC 9.2.0 compilation
...
src/game/server/ddracechat.cpp:623:39: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
2020-02-05 08:22:04 +01:00
12pm
f3b82273d4
Remove leading whitespaces from save codes
2020-01-30 18:53:00 +01:00
Learath
4451fed535
Fix missing include
2020-01-23 16:07:40 +01:00
Dennis Felsing
fcc25dfc65
Fix crash on pDDNetCharacter
2020-01-16 12:35:26 +01:00
fokkonaut
c27e28b7ad
Move /list to ddracechat
2020-01-06 17:29:31 +01:00
def
0236f15018
Teamscore DDNet7 fix
2019-12-29 12:55:19 +01:00
def
aa3e82cda7
Revert "Write out sql server prefix to failed_sql.sql"
...
This reverts commit c1a7961359
.
2019-12-22 09:30:33 +01:00
def
8879f17341
Revert "Still pass in SqlServer even when writing to file since we need prefix"
...
This reverts commit 6e294d938b
.
2019-12-22 09:28:14 +01:00
Dennis Felsing
83f2fc2669
Merge pull request #2012 from ChillerDragon/pr_func_style
...
Style 'void foo() {' -> 'void foo()\n{'
2019-12-21 18:18:49 +01:00
ChillerDragon
928e5407eb
Style 'void foo() {' -> 'void foo()\n{'
2019-12-21 14:35:09 +01:00
Dennis Felsing
71857fdb80
Merge pull request #2007 from heinrich5991/pr_ddnet_rm_string_h
...
Remove `strcmp` from file score
2019-12-18 13:15:10 +01:00
heinrich5991
4aeeedbbea
Remove strcmp
from file score
2019-12-18 12:52:36 +01:00
def
354541a146
Add string.h include in file_score.cpp
...
src/game/server/score/file_score.cpp: In member function ‘CFileScore::CPlayerScore* CFileScore::SearchName(const char*, int*, bool)’:
src/game/server/score/file_score.cpp:169:9: error: ‘strcmp’ was not declared in this scope
169 | if (!strcmp(r.front().m_aName, pName))
| ^~~~~~
src/game/server/score/file_score.cpp:12:1: note: ‘strcmp’ is defined in header ‘<cstring>’; did you forget to ‘#include <cstring>’?
11 | #include <engine/shared/console.h>
+++ |+#include <cstring>
12 |¬
2019-12-17 22:25:06 +01:00
def
a7deac1b22
Update credits
2019-12-17 21:35:40 +01:00
bors[bot]
aeee8f8704
Merge #1995
...
1995: Remove some unused includes r=def- a=ChillerDragon
Co-authored-by: ChillerDragon <chillerdragon@gmail.com>
2019-12-16 13:19:32 +00:00
Dennis Felsing
6e294d938b
Still pass in SqlServer even when writing to file since we need prefix
2019-12-16 10:30:56 +01:00
ChillerDragon
4a6a85124a
Remove some unused includes
2019-12-14 10:20:42 +01:00
bors[bot]
709681604d
Merge #1989
...
1989: Remove a few unused stdio.h's r=def- a=ChillerDragon
Co-authored-by: ChillerDragon <chillerdragon@gmail.com>
2019-12-09 18:23:26 +00:00
ChillerDragon
01c873bcf7
Remove a few unused stdio.h's
2019-12-09 15:40:59 +01:00
Dennis Felsing
a27358806c
Revert "Support shotgun_speed 0"
...
This reverts commit 9d39ca888f
.
2019-12-09 14:59:10 +01:00
def
18e2232727
Add support to tell DDNet7 ranks apart from DDNet ones
...
Saves should not be loadable from one to the other.
Requires:
ALTER TABLE record_race ADD COLUMN DDNet7 BOOL DEFAULT FALSE AFTER GameID;
ALTER TABLE record_teamrace ADD COLUMN DDNet7 BOOL DEFAULT FALSE AFTER GameID;
ALTER TABLE record_saves ADD COLUMN DDNet7 BOOL DEFAULT FALSE AFTER Server;
2019-12-08 16:04:49 +01:00
bors[bot]
c31f6303cf
Merge #1977
...
1977: Support shotgun_speed 0 r=Learath2 a=def-
for mapping stationary bullets
As requested by Im 'corneum.
Co-authored-by: def <dennis@felsin9.de>
2019-12-04 16:48:06 +00:00
bors[bot]
d8cd6aa83e
Merge #1976
...
1976: Write out sql server prefix to failed_sql.sql r=Learath2 a=def-
also don't write out non-eligible records.
Co-authored-by: Dennis Felsing <dennis@felsin9.de>
2019-12-03 11:58:09 +00:00
def
9d39ca888f
Support shotgun_speed 0
...
for mapping stationary bullets
2019-11-27 18:29:39 +01:00
Dennis Felsing
c1a7961359
Write out sql server prefix to failed_sql.sql
2019-11-25 14:04:57 +01:00
ChillerDragon
96c9b1ab73
Rename rifle to laser
...
This makes it easier to copy code from/to 0.7
23df3c609e
2019-11-22 15:37:18 +01:00
def
975a0bc9b3
Add help text for negative parameter for worst players
2019-11-05 18:28:34 +01:00
Dennis Felsing
785ec3d345
Expire server info on connected/drop events
2019-11-04 15:45:55 +01:00
Learath2
79e4651d5b
Only update serverinfo when needed
2019-11-03 01:07:10 +01:00
Dennis Felsing
17a7e37411
Fix (thanks to Bannzay)
2019-10-16 07:08:44 +02:00
Dennis Felsing
3a3df05cca
Change sv_deepfly to work with hammer explicitly
2019-10-15 15:13:23 +02:00
Dennis Felsing
7a991615f3
Fix the fix
2019-10-15 10:38:52 +02:00