Commit graph

2790 commits

Author SHA1 Message Date
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
Dennis Felsing fcfc5a4561 Fix velocity comparison
as Mac build complains:

src/game/server/entities/character.cpp:1681:18: error: ordered comparison between pointer and zero ('const float *' and 'int')
        if(m_Core.m_Vel > 0 && (m_MoveRestrictions&CANTMOVE_DOWN))
           ~~~~~~~~~~~~ ^ ~
2019-10-15 10:36:02 +02:00
bors[bot] d4a64e575b
Merge #1941
1941: Fix IntersectCharacter r=def- a=12pm

This makes hitting yourself when shooting through other tees work

Co-authored-by: 12pm <30786226+12pm@users.noreply.github.com>
2019-10-15 07:42:42 +00:00
bors[bot] c0474a79c2
Merge #1922
1922: Allow to hammer directly on unfreeze r=def- a=heinrich5991

Previously, this was only doable with frame-perfect input if you were
going to get frozen again the next tick. Now, you only have to hold your
hammer to immediately hammer once you get unfrozen.

This fixes that "deepfly" (flying with deep-frozen dummy, binding both
main and dummy tee hammers onto the same key) does not only work for
good connection.

Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2019-10-15 07:30:47 +00:00
bors[bot] 8db2694c5e
Merge #1938
1938: Explode grenades twice at the end if they have lifespans. Fix #1559 r=heinrich5991 a=Learath2

Just by looking at the code I think this is what was intended but only testing can make sure.

Co-authored-by: Learath <learath2@gmail.com>
2019-10-14 20:02:55 +00:00
12pm b1ca920cd4 Fix IntersectCharacter
This makes hitting yourself when shooting through other tees work
2019-10-14 16:03:28 +02:00
bors[bot] aa79d810ff
Merge #1935 #1936 #1940
1935: Add a limit to GetNearestAirPos. Fix #1931 r=def- a=Learath2

There isn't really any sane behaviour here, so I just avoided the infinite loop.

You shouldn't be in the wall to begin with :P

1936: Mark players as afk initially. Fix #1797 r=def- a=Learath2

The whole afktimer code is quite ugly. I might rework it at a later date.
For now this looks like an acceptable fix.

1940: Update ddnet-libs version r=Learath2 a=def-

Was forgotten in the libcurl linux removal I think?

Co-authored-by: Learath <learath2@gmail.com>
Co-authored-by: Dennis Felsing <dennis@felsin9.de>
2019-10-14 08:04:06 +00:00
bors[bot] 4f63492dc9
Merge #1933
1933: Fix two unintentional behavior changes of the stopper rewrite r=def- a=heinrich5991



Co-authored-by: heinrich5991 <heinrich5991@gmail.com>
2019-10-14 07:46:10 +00:00
Learath a650a3c320 Remove the initial lifespan check 2019-10-14 02:28:24 +02:00
Learath 63998eaa84 Explode grenades twice at the end if they have lifespans. Fix #1559 2019-10-13 17:58:59 +02:00
Learath 547f751bf3 Mark players as afk initially. Fix #1797 2019-10-13 17:13:03 +02:00
Learath 84f1542f43 Add a limit to GetNearestAirPos. Fix #1931 2019-10-13 16:34:03 +02:00
heinrich5991 34087e1a7b Only get double jump when falling onto a stopper
Another unintentional behavior change found by Zwelf.
2019-10-06 13:54:16 +02:00
heinrich5991 eab0815ddc Fix unintentional behavior change with blockers
Could be seen on "Insane 3", on teleporter 37. Thanks to Zwelf for
reporting.
2019-10-06 13:51:16 +02:00
d3fault 5f193d009e Properly force spawn order of teams, so dummy doesn't get strong hook. Fix #1828
Mimic old behavior of having a respawn tick > 0 ticks after current tick.
2 ticks later is still "instant enough".
The code below the change mentions strong spawning,
so without deciphering it we simply give 2 extra ticks to make sure that
it executes before spawning (2 instead of 1 so that it definitely
executes for both primary and dummy).
2019-09-30 15:42:09 -07:00
d3fault 718eebd9ce Revert "Force spawn order of teams. Fix #1828"
This broke respawn rate limiting and didn't even fix #1828.
When primary tee hits kill tiles, dummy still gets strong hook.

This reverts commit 02f5723321.
2019-09-30 15:38:35 -07:00
heinrich5991 f19220f1bb Allow to hammer directly on unfreeze
Previously, this was only doable with frame-perfect input if you were
going to get frozen again the next tick. Now, you only have to hold your
hammer to immediately hammer once you get unfrozen.

This fixes that "deepfly" (flying with deep-frozen dummy, binding both
main and dummy tee hammers onto the same key) does not only work for
good connection.
2019-09-28 21:07:33 +02:00
heinrich5991 947b5e7936 Fix some formatting in src/game/server/entities/character.cpp 2019-09-28 20:58:31 +02:00
heinrich5991 66ccd808aa Rewrite stopper code a bit, second try
Remove the whole copy-and-paste mess.

A seemingly ineffective and apparently code block has been removed.

The broken front layer from the first try has been fixed.
2019-09-18 02:04:46 +02:00
bors[bot] 0c34b6eb55
Merge #1878 #1903
1878: Add paused and spec to explayerflags r=Learath2 a=Ryozuki

I think client should know about this, maybe we can do something with it in the future.

It also may help with https://github.com/ddnet/ddnet/issues/259 but i didn't figure out yet a way to fix it.

1903: Consistent spacing for getters and setters r=Learath2 a=ChillerDragon



Co-authored-by: Ryozuki <ryo@ryozuki.xyz>
Co-authored-by: ChillerDragon <chillerdragon@gmail.com>
2019-09-15 13:41:19 +00:00
bors[bot] c146de63fa
Merge #1909
1909: Fix filescore path r=Learath2 a=ChillerDragon

The filescore system did not handle map paths well that were an actual path and not just the mapname.

```
# before fix
$ ./DDNet-Server 'sv_map "DDNetPP-maps/BlmapChill"'
[...]
[2019-09-15 13:29:44][filescore]: opening 'records/DDNetPP-maps-BlmapChill_record.dtb' for reading failed

# after fix
$ ./DDNet-Server 'sv_map "DDNetPP-maps/BlmapChill"'
[...]
[2019-09-15 13:31:05][filescore]: opening 'records/BlmapChill_record.dtb' for reading failed
```

I called ```Server()->``` in a thread so please review thread safety before merge.

Co-authored-by: ChillerDragon <chillerdragon@gmail.com>
2019-09-15 13:30:48 +00:00
ChillerDragon b39de87b18 Fix filescore path
# before fix
$ ./DDNet-Server 'sv_map "DDNetPP-maps/BlmapChill"'
[...]
[2019-09-15 13:29:44][filescore]: opening 'records/DDNetPP-maps-BlmapChill_record.dtb' for reading failed

# after fix
$ ./DDNet-Server 'sv_map "DDNetPP-maps/BlmapChill"'
[...]
[2019-09-15 13:31:05][filescore]: opening 'records/BlmapChill_record.dtb' for reading failed
2019-09-15 13:35:35 +02:00
ChillerDragon f5f07860c4 Consistent spacing for getters and setters 2019-09-08 19:22:12 +02:00
bors[bot] 38f91d3891
Merge #1902
1902: Remove useless votemute struct r=heinrich5991 a=ChillerDragon



Co-authored-by: ChillerDragon <chillerdragon@gmail.com>
2019-09-07 20:21:43 +00:00
ChillerDragon dbad486c67 Remove useless votemute struct 2019-09-04 21:21:40 +02:00
12pm 3b1dcc8793 Handle 0 star random map votes 2019-08-27 18:33:37 +02:00
Ryozuki b58037f31e
fix the telegun save 2019-08-19 10:35:37 +02:00
fokkonaut 3434fca91c Dont reset variables twice 2019-08-12 05:28:42 +02:00
bors[bot] b0f1164485 Merge #1883
1883: Fix crashbug on set_team_ddr -1 r=Learath2 a=fokkonaut

Teams over 63 are also forbidden, so I check for that too.

Co-authored-by: fokkonaut <35420825+fokkonaut@users.noreply.github.com>
2019-08-05 16:37:32 +00:00
fokkonaut 265d3b8a62
Fix namings 2019-08-05 14:45:04 +02:00
fokkonaut ac588f324c Fix crashbug on set_team_ddr -1 2019-08-04 23:38:08 +02:00
Ryozuki e112cf6791
add paused and spec to explayerflags 2019-08-02 18:16:58 +02:00
def 99b814342c Add a few contributors 2019-08-01 18:36:21 +02:00
Learath 9061f03174 Move the afk flag up front 2019-07-29 14:46:29 +03:00
bors[bot] dc41bb9649 Merge #1821
1821: Add afk marks r=def- a=ardadem

This is final state  (and most minimalist to not create mess) of my previous pull request. I didn't reopen it because it's contains changed unnecessary commits.

If someone will become afk, mark will be spawn next to tee's name.
![2019-07-13-13:59:20-screenshot](https://user-images.githubusercontent.com/13207692/61170739-8c4b9b80-a576-11e9-9d87-4c4b2f93941b.png)


Co-authored-by: Arda <ddmirarda@gmail.com>
2019-07-26 08:58:20 +00:00
Arda fb2cb4db26 move afk state inside to player flags 2019-07-26 11:48:15 +03:00
bors[bot] cd8994147c Merge #1842
1842: [WIP] Fix timer r=heinrich5991 a=Learath2

I'm really unsure about this one.

DEPENDS on #1839 

Co-authored-by: Learath <learath2@gmail.com>
2019-07-19 22:23:22 +00:00
bors[bot] 2f23b5c29a Merge #1839
1839: Set m_Race. Fix #1806 r=heinrich5991 a=Learath2

@heinrich5991 apparently you forgot to set `CGameInfo::m_Race` 🙂 

Co-authored-by: Learath <learath2@gmail.com>
2019-07-19 09:31:04 +00:00
Learath b1ed78d58d Add new flag, Fix #1807 2019-07-19 12:28:08 +03:00
Learath 78ac5ce030 Send the flag from the server 2019-07-19 11:21:32 +03:00
Learath 02f5723321 Force spawn order of teams. Fix #1828 2019-07-18 18:35:51 +03:00
bors[bot] a2e40ca4b3 Merge #1803
1803: Fix double pause due to spec r=def- a=fokkonaut

If a player is in /spec (sv_pausable 1 required) and would then use /pause, the tee would respawn, but the player would still be in /pause instead of playing again.
With this, the player will resume completely

Co-authored-by: fokkonaut <35420825+fokkonaut@users.noreply.github.com>
2019-07-15 07:55:48 +00:00
bors[bot] d3c6f1b54f Merge #1823
1823: Fix 'several players were found' on /rank r=heinrich5991 a=fokkonaut

If no player was found, it should say 'x is not ranked', instead it says 'Several players were found', that is because if the result is -1, it will say that. With the default result being -2, it can no longer say that, instead it will say that the player is not ranked.

Co-authored-by: fokkonaut <35420825+fokkonaut@users.noreply.github.com>
2019-07-14 11:23:55 +00:00
fokkonaut fabdc73087 Fix 'several players were found' on /rank 2019-07-14 11:31:58 +02:00
Arda f1454dbb7a Share afk state of players to client 2019-07-13 12:25:24 +03:00
ChillerDragon 6172a9dca0 Use the float type explicitly 2019-07-08 23:08:42 +02:00
bors[bot] b50e7ee674 Merge #1802
1802: Prediction fixes r=def- a=trml

I believe this fixes #1671 (uninitialized variables).

Some other things: Use new ddnetchar fields in prediction, small fix for prediction of moving pickups, fix the freeze end tick in ddnetcharacter (will add it to the client later)

Also adds a setting for choosing between new/old antiping for grenade like suggested in #1683 (cl_antiping_gunfire 0 to disable).

Co-authored-by: trml <trml@users.noreply.github.com>
2019-07-04 12:59:52 +00:00
fokkonaut 0cb13ccec1 Fix double pause due to spec 2019-07-01 01:17:32 +02:00
trml 82a47210eb Fix freeze end tick in ddnetchar 2019-07-01 00:50:50 +02:00
def 6d19963933 Remove unused variables 2019-06-25 23:07:32 +02:00
def f7e642bbbe Fix race condition in /map (untested) 2019-06-25 21:03:20 +02:00
heinrich5991 f31e081bd4 Remove all checking for the gametype in the game
OK, maybe not actually remove because it is kept for fallback when the
new method isn't available.

The whole gametype parsing business had the same downsides as user agent
parsing on the web, hence I removed it while keeping behavior the same.

This allows servers to explicitly opt in or out of certain bug
workarounds and other client behavior. This increases the complexity of
different configurations that are available in the client (which is a
bad thing).
2019-06-14 00:28:59 +02:00
Learath efbc05c9a8 No need for <algorithm> 2019-06-13 23:24:06 +02:00
trml fbf5edfdcb Set and send solo status on servers with sv_solo_server and sv_team 3 2019-06-13 17:23:23 +02:00
Dennis Felsing 617d123024
Merge pull request #1778 from d3fault/instant-respawn
respawn is now instant, but rate limited to 3 sec unless player clicks mouse1
2019-06-11 18:04:52 +02:00
Dennis Felsing bbb1b2cdef
Merge pull request #1733 from Learath2/dd_pr_colorsigned
Store colors unsigned
2019-06-11 12:26:28 +02:00
d3fault 10e06f919e respawn is now instant, but rate limited to 3 sec unless player clicks mouse1 2019-06-07 02:44:19 -07:00
fokkonaut e471d4796e Remove the unused Skinstealaction 2019-06-04 17:23:29 +02:00
fokkonaut 75e13550c2 Convert to int 2019-06-03 11:57:46 +02:00
fokkonaut 078e88bc8f Cleanup CPlayer Snap 2019-06-03 11:35:18 +02:00
fokkonaut af7fd12341 Remove m_Weapon parameter from CProjectile 2019-06-02 22:04:11 +02:00
bors[bot] 1578a33628 Merge #1760
1760: Fix freeze projectiles only hit one tee (Fixes #1759) r=def- a=fokkonaut



Co-authored-by: fokkonaut <35420825+fokkonaut@users.noreply.github.com>
2019-05-31 11:59:15 +00:00
bors[bot] 647bbcc259 Merge #1732
1732: Implement ISDDNET and Time Score cleanly r=def- a=Learath2

This is an attempt at implementing the two things in a cleaner way.

Deprecated #1320 
Willfix #1622  soon(tm)

Co-authored-by: Learath <learath2@gmail.com>
Co-authored-by: Learath2 <learath2@gmail.com>
2019-05-31 10:12:10 +00:00
fokkonaut 85cbe99422 Fix wrong character team check 2019-05-30 14:14:47 +02:00
fokkonaut 61a6518f0d remove spaces 2019-05-29 16:30:44 +02:00
fokkonaut bbbdd89e64 Fix freeze projectiles only hit one tee (Fixes #1759) 2019-05-29 16:28:38 +02:00
fokkonaut 14c7bf550a
fixed typo 2019-05-26 22:47:02 +02:00
Learath2 c98978c9d6 Implement timescore using a netobj 2019-05-21 10:26:33 +02:00
Learath c2a774275f Move AuthInfo into DDNetPlayer 2019-05-21 10:25:15 +02:00
heinrich5991 096c87bd1d Hack around the race condition in random maps selection
Revert this "once we get proper SQL code"™.
2019-05-20 00:12:59 +02:00
Learath 0d39eb128d Use unsigned integers for colors 2019-05-15 18:05:19 +02:00
Dennis Felsing 7ba1cae5f6
Merge pull request #1699 from trml/pr_extend_ddnetchar
Add some more fields to ddnetcharacter
2019-05-05 20:11:10 +02:00
trml 09401a83ec Add strong/weak id to ddnetcharacter 2019-05-02 00:34:20 +02:00
trml ae57b7f205 Add more fields to ddnetcharacter 2019-05-02 00:34:03 +02:00
Learath 57f58cc9c7 Refactoring mishap 2019-05-01 22:57:14 +03:00
Learath 689c7b29be Don't check dnsbl when alone 2019-05-01 14:54:51 +03:00
bors[bot] a2f44299e0 Merge #1678
1678: Handle colors in console r=def- a=Learath2

DEPENDS: #1654 

A better way to fix #1581 possibly deprecates #1597 

Co-authored-by: Learath <learath2@gmail.com>
2019-04-30 19:39:56 +00:00
bors[bot] 70b3f1db21 Merge #1675
1675: Remove unused vanilla code (closed #1658) r=def- a=ChillerDragon

Removed vanilla code from gamecontext and gamecontroller. I didn't search for the code all over the place I just remember seing it there a lot. Also removed some empty lines. Wanted to do this for a long time :)

thought there is an reason it is there. But we have git and the vanilla repo so I don't see any point keeping it there.

Co-authored-by: ChillerDragon <chillerdragon@gmail.com>
2019-04-29 07:24:01 +00:00
bors[bot] a5096c4de0 Merge #1663
1663: Use freeze end tick instead of a flag. Fix #1659 r=def- a=Learath2

I used -1 for deep frozen, and 0 for not frozen. Not really sure if this is the best way.

Co-authored-by: Learath <learath2@gmail.com>
2019-04-27 08:53:38 +00:00
Learath 93d14a1eca Inconvenience for windows 2019-04-26 22:36:49 +03:00
Learath 93265dbb9c Please MSVC 2019-04-25 21:09:32 +03:00
Learath 0f781df1dd Try handling colors in console 2019-04-25 14:48:53 +03:00
ChillerDragon ad7a2cdef2 Remove unused vanilla code (closed #1658) 2019-04-24 22:36:47 +02:00
Learath 24408e6f3c Oops 2019-04-24 19:12:46 +03:00
Ryozuki 42a5d7a9c1 fix conflicts 2019-04-23 20:42:07 +02:00
Dennis Felsing dc1e638fb9
Merge pull request #1664 from Learath2/dd_pr_solofix
Fix solo bug
2019-04-23 20:03:58 +02:00
bors[bot] 526af034dd Merge #1620
1620: Rewrite of prediction code, with additional prediction (updated) r=def- a=trml

This is a reworked attempt at a rewrite of the prediction code (#464), to allow for more client side prediction. It doesn't fix the duplication of server code, but the client code should otherwise be cleaner. This includes separating prediction code out of gamecore/gameclient, and a refactor of the rendering of predicted characters.

There is also prediction for some new things, and some other changes:
- prediction of laser, shotgun, ninja, fng hammer, pickups and ddrace tiles (freeze/unfreeze tiles with cl_predict_freeze)
- laser and bullets are rendered when you fire them and bullets don't go through walls (when both cl_antiping_grenade and cl_antiping_weapons are enabled)
- antiping for flags
- prediction of dummy input
- an additional smoothing option that attempts to make antiping less jumpy (cl_antiping_smooth)

Co-authored-by: trml <trml@users.noreply.github.com>
Co-authored-by: trml <trml@noreply.github.com>
2019-04-23 17:11:21 +00:00