10:11 < bridge> I just had an idea of how to sneak past the account system :O 10:12 < bridge> We shall make commits where new clients have features/functionality that weren't before to complete new maps unbeatable from old clients 10:13 < bridge> So this will be the start of ddnet2.0 10:13 < bridge> If you wanna stick to old client you can but you will not be able to complete 2.0 maps 10:14 < bridge> and then we will sneak the account system in. 👟 10:14 < bridge> If you wanna play on old maps you can but the new season is here and you can choose what you want 10:23 < bridge> to play ddnet 2.0 maps you would need ddnet battle pass as well? 10:24 < bridge> nah 10:24 < bridge> you just would be able to complete them ig 10:24 < bridge> like some maps could require 3 dummies instead of 1 10:24 < bridge> what was the latest version with stars when tee in freeze? 10:25 < bridge> which is not possible currently 10:25 < bridge> just launch 2 clients :santatrollet: 10:25 < bridge> thats how ive finished quantum 10:25 < bridge> or whatever the map's name 10:25 < bridge> You don't have dummy copy though or toggle 10:26 < bridge> will ddnet 2.0 have more stuff for dummy players :pepeW: i aint updating 10:26 < bridge> This was just an example 10:27 < bridge> if they remove dummies 10:27 < bridge> then it will be fastest git pull in my life 10:28 < bridge> I guess what I wanted to say is break compatibility to *make bug fixes*. Old ppl can still play on ddnet1.0 but the new ddnet will have new networking, new compatibility for mods, new options etc. that weren't possible to add before. 10:30 < bridge> I would say before 16.5 10:30 < bridge> (for the server) 10:43 < bridge> Also I am not saying since we could add accounts we could add *this and that* because those features would require accounts. I am saying that one of the bugfixes **would** be accounts whatever that entails :) -- sincerely ghosty 11:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1172478493431435325/2023-11-10_18-08-25.mp4?ex=656076b0&is=654e01b0&hm=5bc01498d0b24d4368afc2bf386737afde638af346c4fdce6e5f446856c27966& 11:11 < bridge> :O 11:18 < bridge> Powered by https://github.com/TsFreddie/Oolong 11:19 < bridge> haven't really written any documentations for it tho 11:20 < bridge> it looks so pogg 11:21 < bridge> how does it work though does it have a master window that's transparent or does the window actually change size? 11:21 < bridge> you can write ts in unity? :pepeW: 11:21 < bridge> i can now 11:23 < bridge> the bottom bar just changes size 11:24 < bridge> basically a react-like framework with hacky DOM implementation in Unity 13:58 < bridge> seems like the saving in my editor broke a little, and was saving it to some .tmp file 14:48 < bridge> bug? when i set the value to 0.2, it starts dropping down to 0.190ish 14:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1172533344794312825/DDNet_Client_2023-11-10_14-47-37.mp4?ex=6560a9c6&is=654e34c6&hm=53effafa7bc14277dfcb2deca3f4a6f1e2f22e1b3195368fe669ec97c74dbaf5& 14:56 < bridge> floating point shenanigans 15:01 < bridge> yes that is def a bug. it should be at most 0.001 off, depending on the implementation 15:02 < bridge> ddnet often does not round to nearest integer, but simply converts to int 15:02 < bridge> 15:02 < bridge> that could be a problem maybe 15:21 < bridge> The lineinput uses `float`, whereas the value in the map file is fixed-point 15:23 < bridge> but even for fixed point you can round up and down 15:25 < bridge> Also, envelope point value is fixed point with scale 1024 whereas time uses scale 1000 15:29 < bridge> someone experience with being banned because of port scan attacks? 15:29 < bridge> my VPS was banned. so either some software has a vulnerable, my SSH key was hacked or it's false positive 15:29 < bridge> apparently my server sent it from port 80 15:30 < bridge> so probably apache 15:32 < bridge> how come shift + left click (filling selection with blocks) doesnt work with wasd (moving around in editor) 15:33 < bridge> e.g. ger2.ddnet.org 15:33 < bridge> https://www.abuseipdb.com/check/176.9.114.238 15:33 < bridge> 15:33 < bridge> also has 34% report rate, and many of these reports also claim port scanning 15:33 < bridge> so i kinda assume it's just a dos 16:33 < bridge> mh 16:33 < bridge> `int(0.2 * 1024) / 1024 = 0.19921875` 16:33 < bridge> vs 16:33 < bridge> `nearest_int(0.2 * 1024) / 1024 = 0.200195312 5` 16:33 < bridge> 16:33 < bridge> could explain it xdd 16:38 < bridge> @heinrich5991 did u know about this https://doc.rust-lang.org/nightly/core/panic/struct.Location.html#method.caller 16:38 < bridge> i discovered this can be nice if u have asserts for tests in another function u call inside the test 16:39 < bridge> ```rust 16:39 < bridge> #[track_caller] 16:39 < bridge> pub fn run_program_assert_output( 16:39 < bridge> program: &(String, Program), 16:39 < bridge> entry_point: &str, 16:39 < bridge> args: &[JITValue], 16:39 < bridge> outputs: &[JITValue], 16:39 < bridge> ) { 16:39 < bridge> let result = run_program(program, entry_point, args); 16:39 < bridge> assert_eq!(result.return_values.as_slice(), outputs, "assert mismatch on: {}", std::panic::Location::caller()); 16:39 < bridge> } 16:39 < bridge> ``` 16:39 < bridge> xd 16:40 < bridge> my FFR tip 16:40 < bridge> my business is done 16:40 < bridge> isnt that default behavior for panics anyway? 16:40 < bridge> oh and also the crate this friday is https://docs.rs/educe/0.4.23/educe/ 16:40 < bridge> its nice for partialeq impls 16:41 < bridge> i think not if the panic is inside a function but u care about the one who called that one 16:41 < bridge> the assert here would point me to this function, not where this function was called 16:41 < bridge> ah u mean like a backtrace? 16:41 < bridge> panic also has a backtrace function afair 16:41 < bridge> didn't know it 16:41 < bridge> > Approved in RFC 2091, this feature enables the accurate reporting of caller location during panics initiated from functions like Option::unwrap, Result::expect, and Index::index. This feature adds the #[track_caller] attribute for functions, the caller_location intrinsic, and the stabilization-friendly core::panic::Location::caller wrapper. 16:42 < bridge> @jupeyy_keks oh this very feature allows that on unwraps 16:42 < bridge> https://rustc-dev-guide.rust-lang.org/backend/implicit-caller-location.html 16:42 < bridge> for me panics already report that 16:42 < bridge> its already in stable btw 16:42 < bridge> yeah 16:42 < bridge> it was implemented some time ago 16:43 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1172562057040769104/image.png?ex=6560c483&is=654e4f83&hm=a3354b49d086738761a1942c9af41b50dfe0f8ba55074f769689c32f97062ae4& 16:43 < bridge> @jupeyy_keks this was how it wAS BEFORE 16:43 < bridge> sry caps 16:43 < bridge> i never used dark ages rust 16:43 < bridge> 😬 16:43 < bridge> i think a panic on a fn with track caller will show the caller location 16:44 < bridge> instead of the panic inside the fn 16:44 < bridge> time to check rustp layground 16:44 < bridge> i'd be useful if errors could do the same 16:45 < bridge> i hate to do .map_err(my text that explains everything) 16:45 < bridge> https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=02da3e737b0d37e8157f2e8fe32a739f 16:45 < bridge> it does that! 16:45 < bridge> track caller is amazing 16:45 < bridge> ok 16:45 < bridge> nvm 16:45 < bridge> im blind 16:45 < bridge> it doesnt 16:46 < bridge> kek 16:46 < bridge> rustup update version-2050 16:46 < bridge> https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=087d6bae5e916cc9bf70997e474f579e 16:46 < bridge> omg 16:46 < bridge> i had it on the wrong fn 16:46 < bridge> it works xDDD 16:47 < bridge> it reports the panic at line 10 16:47 < bridge> why is it called educe? 16:47 < bridge> thats my point 16:47 < bridge> @jupeyy_keks 16:47 < bridge> the author is chinese 16:47 < bridge> idk 16:47 < bridge> https://magiclen.org/educe 16:48 < bridge> oh so theorically 16:48 < bridge> i dont even need the format string on the assert 16:48 < bridge> cuz the assert itself will show up where the fn is called 16:48 < bridge> marvelous 16:50 < bridge> cool, now do the same for anyhow! calls 16:50 < bridge> or tell me how to do it if it already exists 16:50 < bridge> @jupeyy_keks what does anyhow! 16:50 < bridge> it doesn't really help me if a higher level component panics xd 16:50 < bridge> just put #[track_caller] 16:50 < bridge> anyhow! creates a anyhow Error 16:50 < bridge> yep, that fixes it 16:51 < bridge> it's really cool, but it would be nice for errors too, not only for panic u know 16:51 < bridge> for errors hmm 16:51 < bridge> i think there is backtrace support 16:51 < bridge> how often do u call panic in your programs xD 16:51 < bridge> 16:51 < bridge> u probably do anyhow::Result 16:51 < bridge> xdd 16:51 < bridge> yeah 16:52 < bridge> its all here https://doc.rust-lang.org/std/backtrace/index.html 16:52 < bridge> mh nice, didnt know this works for errors directly 16:52 < bridge> available since 1.65.0 16:52 < bridge> but i assume only with debug symbols? 16:54 < bridge> @jupeyy_keks u use nightly right 16:54 < bridge> also doesnt work on WASM 16:54 < bridge> do u use thiserror 16:54 < bridge> :/ 16:54 < bridge> sometimes 16:54 < bridge> if i need to have an error as type 16:54 < bridge> ```rust 16:54 < bridge> #[derive(Error)] 16:54 < bridge> pub struct Error { 16:54 < bridge> pub backtrace: Backtrace, 16:54 < bridge> pub source: ErrorImpl, 16:54 < bridge> } 16:54 < bridge> ``` 16:54 < bridge> and ErrorImpl can be ur enum 16:55 < bridge> ```rust 16:55 < bridge> #[derive(Error, Debug)] 16:55 < bridge> pub enum MyError { 16:55 < bridge> Io { 16:55 < bridge> #[from] 16:55 < bridge> source: io::Error, 16:55 < bridge> backtrace: Backtrace, 16:55 < bridge> }, 16:55 < bridge> } 16:55 < bridge> ``` 16:55 < bridge> sadly thiserror needs nightly for this 16:55 < bridge> well and is the question if it works on WASM for example 16:55 < bridge> and without debug symbols 16:55 < bridge> https://docs.rs/anyhow/latest/anyhow/struct.Error.html#method.backtrace 16:55 < bridge> maybe i should write my own macro 16:55 < bridge> i am macro pro now 16:57 < bridge> xd 17:03 < bridge> why does that value even use 0-1 instead of 0-255 17:04 < bridge> why does that value even use 0-1.000 instead of 0-255 17:10 < bridge> i think it's simply because we use it for position etc too 17:10 < bridge> it's not type aware 17:13 < bridge> @jupeyy_keks Would the color pipette from upstream work with all graphics backends? 17:13 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1172569851651428425/image.png?ex=6560cbc5&is=654e56c5&hm=cb7c5e3bd8402451e812a0f9cf95992e5994feac25e24464159f3926ad79a2c3& 17:14 < bridge> does it get the color form the backend? 17:14 < bridge> not sure how it does it, but it must get the hovered color from the engine I suppose 17:15 < bridge> i mean if u take a screenshot, u get the colors u see 17:15 < bridge> i'd maybe remove the alpha value tho 17:15 < bridge> (the screenshots should already do that anyway) 17:15 < bridge> ah, looks like upstream literally takes a screenshot of only the hovered area 17:15 < bridge> https://github.com/teeworlds/teeworlds/pull/1434/files 17:19 < bridge> I mean taking a screenshot should work. I don't think u be to reduce it to this area only in the backend already 17:20 < bridge> Does it do it per frame btw 17:20 < bridge> Or changing 17:20 < bridge> Cache 17:20 < bridge> Or 17:21 < bridge> Looks like it does it every frame :justatest: 17:21 < bridge> Weirdly hooks into the screenshot command to read 1x1 pixel 17:23 < bridge> I guess we could return screenshot data from graphics class. I dunno if it's nice that graphics class writes files anyway xd 17:24 < bridge> Would be cleaner to add a separate command that reads only one desired pixel 17:24 < bridge> And only call when the mouse position changed at least 17:24 < bridge> Although that can also lead to issues if menus are opened with keys 17:35 < bridge> Is that function not also used for physics? 17:35 < bridge> Should be careful if so xd 17:38 < bridge> It's only used in editor and tools, it converts float to fixed point. Loading maps should only use the opposite function 17:41 < bridge> ah then fine 17:41 < bridge> right physics use an ever lower value xD 17:41 < bridge> 256 or smth 18:33 < bridge> is there a bind to start the local server? 18:33 < bridge> *command 18:35 < bridge> ./DDNet-Server 18:35 < bridge> xd 18:35 < bridge> i don't think there is a console command 19:33 < bridge> uff ok xd 19:34 < bridge> atleast an option to not close it when client closes? 20:27 < bridge> thx 20:27 < bridge> are those changes immediately put into the steam nightly tho? i dont really understand how it works 20:28 < bridge> nightly should be build every night, hence the name 20:32 < bridge> and nightly contains all changes from the master branch 20:43 < bridge> @cyberfighter 20:44 < bridge> hi 20:44 < bridge> hi 20:48 < bridge> who go playing 21:31 < bridge> i need someone who knows about the game 21:31 < bridge> someone i can ask questions to 21:31 < bridge> u could start with asking the question 21:34 < bridge> how can i ban other clients expect steam 21:35 < bridge> mh there is some checksum sent to the server, with which u could identify these clients i think 21:35 < bridge> better ask @heinrich5991 21:35 < bridge> but he will probably ask you "why do you want to ban all other clients" 21:36 < bridge> It's something you'll have to figure out on your own 21:37 < bridge> because i want the ban bot clients someone spoofing 21:37 < bridge> versions 21:38 < bridge> or are you the bot client and want to join other servers? 😏 21:38 < bridge> what is your server? 21:38 < bridge> the spoofing might not even stop by that 21:38 < bridge> and it's probably no spoofing 21:38 < bridge> it's simply many connections 21:39 < bridge> ziprnet 21:57 < bridge> banning based on client IDs is mostly futile 21:57 < bridge> try to ban them based on their behavior 23:27 < bridge> https://starcel.net/ 23:52 < bridge> Link without context is a censorable offense 23:53 < bridge> :ban: 23:59 < bridge> no context really