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