00:35 < bridge> i need a critic for README 00:35 < bridge> https://github.com/StormAxs/StA-Extended-DDNet-Client 00:37 < bridge> > ✅Auto login on specific DDNet and KoG Servers 00:37 < bridge> security review: how do you determine where to log in 00:37 < bridge> GER10 for ddnet or GER3 for KoG 00:37 < bridge> ah right 00:38 < bridge> ah, automatic verification, I see 00:38 < bridge> `- ✅Auto login on specific DDNet and KoG Servers (GER10 for DDNet | GER3 for KoG)` 00:38 < bridge> so this one will looks better ig 00:40 < bridge> looks good overall 🙂 00:41 < bridge> YAY! thanks 00:54 < bridge> does the 'auto login' mean it will login to kog account servers 00:54 < bridge> or just auto-whitelist 00:57 < bridge> probably auto rcon 01:01 < bridge> I think it's just auto whitelist 02:05 < bridge> whitelisting 02:05 < bridge> working on autologin 06:20 < bridge> bro, as a newbe in programing in general, your code make sense to me, your convention is good, i am starting to grasp what is going on 06:55 < bridge> Whut? 07:35 < bridge> it's so stupid that you can't link your soundcloud acc in discord 😐 10:57 < bridge> @jupeyy_keks the reason client can crash with 4000 skins is insufficient memory, right? Is it possible to load only needed skins, when connecting to server for example and replace skin selection menu in settings to pages to load them respectively? 10:58 < bridge> yes 10:58 < bridge> lazy load and unload 10:59 < bridge> would make lotta sense 11:00 < bridge> God bless anyone who would implement that :troll: 11:01 < bridge> without raii textures that automatically unload i wont touch it xdd 11:01 < bridge> 11:01 < bridge> dd-pg ofc has it 11:01 < bridge> 😏 11:06 < bridge> :EZ: 11:14 < bridge> what extentions do you recommend me for vs code 11:15 < bridge> i just wanna navigate freely into the source 11:16 < bridge> Does vscode have extension called harpoon? 11:16 < bridge> yes 11:17 < bridge> Damn, it looks so lame in vscode 11:17 < bridge> Damn, it looks so lame in vscode :pepeW: 11:19 < bridge> i'd recommend the ones from the ddnet workspace 11:22 < bridge> who's idea was to add rust into ddnet? i am not even a programmer yet but i don't like rust :trollet: 11:22 < bridge> it was heinrichs idea 11:22 < bridge> who's idea was to add rust into ddnet? i am not even a programmer yet, but i don't like rust :trollet: 11:23 < bridge> lmfao 11:23 < bridge> approved by multiple other maintainers 11:23 < bridge> it's maybe a bit unlucky that it is a bit unused yet 11:23 < bridge> delete those rusty rusts 11:24 < bridge> :troll: 11:25 < bridge> does the workstation comes with extentions ? 11:25 < bridge> the name origin of rust is not from rusting metal 11:25 < bridge> it cannot automatically install them, but it should recommend it automatically 11:26 < bridge> i installed a bunch of extention, but i don't feel right with nevigation 11:26 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182991731474579496/image.png?ex=6586b5e7&is=657440e7&hm=ce0f4214ac2e68894cc957e58b11dd89eaf64a054679cbbaa9b324532da5a305& 11:26 < bridge> for example 11:27 < bridge> oh thank you let me try it 11:27 < bridge> what do you mean by navigation 11:27 < bridge> Ctrl + click on class to go to its definition? xd 11:29 < bridge> it doesn't show me the pointers definitions 11:29 < bridge> like this one, i wanna see pSelf definition 11:29 < bridge> 11:29 < bridge> pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD 11:30 < bridge> cut it's a pointer i can't see it ? 11:30 < bridge> cus it's a pointer i can't see it ? 11:31 < bridge> that should work with clangd 11:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182993101564944395/image.png?ex=6586b72e&is=6574422e&hm=daccd7cbcd4db5912fc02c8bef6fde55992702ce1ebebb6ed037a8e88ab34fbb& 11:32 < bridge> if u mean this 11:32 < bridge> yes 11:32 < bridge> thank you 11:33 < bridge> or u can use neovim to have type definitions :santatrollet: 11:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182993390665740368/image.png?ex=6586b773&is=65744273&hm=f966b702c4268c903c7a44159e640baaeb8c597b2d0ea97b6c375619547d6673& 11:34 < bridge> vim is a nighmare, learning vim is harder than making a whole ddnet code 11:34 < bridge> understandable 11:34 < bridge> :lol: 11:34 < bridge> but tru 11:34 < bridge> but vim is so cool 🙂 11:35 < bridge> i have already installed clangd, i think some other extention is on the way 11:35 < bridge> but neovim is cooler 😏 11:37 < bridge> does ur vs codes have dis :kek: 11:37 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182994466043330620/owo.mp4?ex=6586b873&is=65744373&hm=b790085972265e4dd21a868797aeae82272324d1a27d5bffbb6dc55c0025f9cd& 11:37 < bridge> did clangd suggest you to download clangd-server? 11:37 < bridge> normally it does it 11:38 < bridge> no it does not, but i have clang_format and 18 other extentions 😂 11:39 < bridge> uff 11:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182995069771460659/Screenshot_24.png?ex=6586b903&is=65744403&hm=07c0ae3da4a7439ea456ad238406027917599c47dd45f76a4320fd57b0dc9f83& 11:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182995070161522688/Screenshot_25.png?ex=6586b903&is=65744403&hm=d27e2ee6dae103f3a9c104a37a3681e11fa000ba866d82d04d113dfadd3722cc& 11:41 < bridge> oh 11:41 < bridge> :justatest: 11:41 < bridge> c++ microsoft extension and clangd might annoy each other 11:41 < bridge> but not sure 11:41 < bridge> let me disable it 11:43 < bridge> does not worked 11:44 < bridge> do you use vs code too ? 11:44 < bridge> yes 11:44 < bridge> then i can just install the exact extention you use 🙂 11:45 < bridge> i have only the recommended ones 11:45 < bridge> nothing else 11:45 < bridge> bcs i created that workspace for my needs 😉 11:47 < bridge> i installed recommended ones on top of my old ones, now they all got mixed up, how can i delete the rest and left alone with recommendeds ? 11:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182997085759475732/image.png?ex=6586bae4&is=657445e4&hm=9e8d0c1cb4f5e9135056f4d57d60b46b2635f2a3593cc90b0859ee03a5acb0d7& 11:48 < bridge> then go on the filter for recommended 11:48 < bridge> and only activate them 11:49 < bridge> they don't show up on recommended 11:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182997591764512858/image.png?ex=6586bb5c&is=6574465c&hm=865b897ce4b09e42cc84445254c3bba7b966e0809ce651ee9b62e9aeb8f887e2& 11:50 < bridge> i prefer clangd in every situation except for where there’s heavy use of ms dialects 11:50 < bridge> then intellisense really works 11:50 < bridge> or i can just uninstall all of them and then install recommended, :justatest: 11:50 < bridge> otherwise they are really comparable 11:51 < bridge> thank you 11:54 < bridge> it still doesn't show me the pSelf 11:54 < bridge> let me restart 11:57 < bridge> no, still don't work 12:06 < bridge> Did the extension log has that clandg was found 12:20 < bridge> you ha 😄 12:21 < bridge> it't working now 🙂 it shows me the pointer ones too 12:23 < bridge> i just went to "show running extentions" and then disable the rest which is not have been in your recommended ones 12:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1183006338930966528/Screenshot_27.png?ex=6586c382&is=65744e82&hm=7d1759364b6c9e8932972ab54fa1756db7f87326b1d692a945d65162aca7dc0b& 12:44 < bridge> no, i got delusional, i thought it was gone to the definition, but it goes to every where in the same file that the word was mentioned 12:44 < bridge> i using ctrl + left mouse button 12:46 < bridge> it shows the definition of the classes but it don't show the definition of the members and functions of the class 12:52 < bridge> fucking windows 15:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1183056928830664834/2023-12-09_22-43-01.mp4?ex=6586f29f&is=65747d9f&hm=e3fd74f1a41fd62b6e0d38f1ba4e0450fde05a3451d6517a056cb50688d20369& 15:46 < bridge> new version. he walks with smaller steps and less intent now. 16:19 < bridge> pog 16:30 < bridge> is discord lagging or is it me? 16:30 < bridge> when I go to load channels it takes forever 17:00 < bridge> (i didnt make this, i installed extension :D) 17:19 < bridge> i love it honestly 17:20 < bridge> That was random 😄 17:29 < bridge> yo im so fking confused. i want to print smth like that to console in ascii art. 17:29 < bridge> anyone any idea how? i tried a few thing with % operator but my brain is fried rn 17:29 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1183082995545022544/image.png?ex=65870ae6&is=657495e6&hm=f35aaa409699f3f9e98e32d6f26d0a183a4cbe854a74b4fbfb1550b8484060ae& 17:30 < bridge> ```cpp 17:30 < bridge> void PrintTournamentBoard() 17:30 < bridge> { 17:30 < bridge> int Cols = 10; 17:30 < bridge> int Rows = pow(2, Cols); 17:30 < bridge> for(int i = 0; i < Cols; ++i) 17:30 < bridge> { 17:30 < bridge> int players = pow(2, i) 17:30 < bridge> for(int j = 0; j < Rows; ++j) 17:30 < bridge> { 17:30 < bridge> // things here pls >.< 17:30 < bridge> } 17:30 < bridge> } 17:30 < bridge> } 17:30 < bridge> ``` 17:30 < bridge> ```cpp 17:30 < bridge> void PrintTournamentBoard() 17:30 < bridge> { 17:30 < bridge> int Cols = 5; 17:30 < bridge> int Rows = pow(2, Cols); 17:30 < bridge> for(int i = 0; i < Cols; ++i) 17:30 < bridge> { 17:30 < bridge> int players = pow(2, i) 17:30 < bridge> for(int j = 0; j < Rows; ++j) 17:30 < bridge> { 17:30 < bridge> // things here pls >.< 17:30 < bridge> } 17:30 < bridge> } 17:30 < bridge> } 17:30 < bridge> ``` 17:30 < bridge> ```cpp 17:30 < bridge> void PrintTournamentBoard() 17:30 < bridge> { 17:30 < bridge> int Cols = 5; 17:31 < bridge> int Rows = pow(2, Cols); 17:31 < bridge> for(int i = 0; i < Cols; ++i) 17:31 < bridge> { 17:31 < bridge> int Players = pow(2, i) 17:31 < bridge> for(int j = 0; j < Rows; ++j) 17:31 < bridge> { 17:31 < bridge> // things here pls >.< 17:31 < bridge> } 17:31 < bridge> } 17:31 < bridge> } 17:31 < bridge> ``` 17:31 < bridge> ```cpp 17:31 < bridge> void PrintTournamentBoard() 17:31 < bridge> { 17:31 < bridge> int Cols = 5; 17:31 < bridge> int Rows = pow(2, Cols); 17:31 < bridge> for(int i = 0; i < Cols; ++i) 17:31 < bridge> { 17:31 < bridge> int Players = pow(2, i) 17:31 < bridge> for(int j = 0; j < Rows; ++j) 17:31 < bridge> { 17:31 < bridge> // things here pls >.< 17:31 < bridge> } 17:31 < bridge> } 17:31 < bridge> } 17:31 < bridge> ``` 17:31 < bridge> Just print the characters? 17:31 < bridge> yea 17:32 < bridge> so its like 17:32 < bridge> ``` 17:32 < bridge> 0 17:32 < bridge> 0 0 17:32 < bridge> 0 0 0 0 17:32 < bridge> ``` 17:32 < bridge> or smth 17:32 < bridge> Ok, first figure out what pieces you are working with. Like the actual characters you have at hand to print the board 17:32 < bridge> ```cpp 17:32 < bridge> void PrintTournamentBoard() 17:32 < bridge> { 17:32 < bridge> int Cols = 5; 17:32 < bridge> int Rows = pow(2, Cols); 17:32 < bridge> for(int i = 0; i < Cols; ++i) 17:32 < bridge> { 17:33 < bridge> int Players = pow(2, i) 17:33 < bridge> for(int j = 0; j < Rows; ++j) 17:33 < bridge> { 17:33 < bridge> // things here pls >.< 17:33 < bridge> } 17:33 < bridge> } 17:33 < bridge> } 17:33 < bridge> ``` 17:33 < bridge> its only theoretical 17:33 < bridge> no data involved. just print the pattern 17:33 < bridge> no data involved. just printing the pattern 17:33 < bridge> But with just 0s? It's much harder with the drawing characters 17:34 < bridge> :pepeW: 17:41 < bridge> output: 17:41 < bridge> ``` 17:41 < bridge> ----------------0--------------- 17:41 < bridge> ----------0---------0----------- 17:41 < bridge> ------0-----0-----0-----0------- 17:41 < bridge> ---0--0--0--0--0--0--0--0------- 17:41 < bridge> -0000000000000000--------------- 17:41 < bridge> ``` 17:41 < bridge> ```cpp 17:41 < bridge> #include 17:41 < bridge> #include 17:41 < bridge> 17:41 < bridge> int main() { 17:41 < bridge> int Cols = 5; 17:41 < bridge> int Rows = pow(2, Cols); 17:41 < bridge> for (int i = 0; i < Cols; ++i) { 17:41 < bridge> int Players = pow(2, i); 17:41 < bridge> int divider = Rows / (Players + 1); 17:41 < bridge> for (int j = 0; j < Rows; ++j) { 17:41 < bridge> if (j % divider == 0 && j >= divider && j <= divider * Players) { 17:41 < bridge> std::cout << '0'; 17:41 < bridge> } else 17:41 < bridge> std::cout << '-'; 17:42 < bridge> } 17:42 < bridge> std::cout << '\n'; 17:42 < bridge> } 17:42 < bridge> } 17:42 < bridge> ``` 17:42 < bridge> output: 17:42 < bridge> ``` 17:42 < bridge> ----------------0--------------- 17:42 < bridge> ----------0---------0----------- 17:42 < bridge> ------0-----0-----0-----0------- 17:42 < bridge> ---0--0--0--0--0--0--0--0------- 17:42 < bridge> -0000000000000000--------------- 17:42 < bridge> ``` 17:42 < bridge> not correct yet 17:45 < bridge> help, what is the best way to learn the updated ddnet code ? 17:45 < bridge> mess up with code 17:45 < bridge> no other ways 17:46 < bridge> i need a guide 17:46 < bridge> there's some guides on ryo's blog 17:46 < bridge> also chillerdragon had some afair 17:47 < bridge> where ? 17:48 < bridge> the codes outdated and won't work there, at least for it's "add a command one" 17:51 < bridge> "won't work" is how you learn if you want to learn C++ the butt your head against it until it works way 17:51 < bridge> does anyone have a guide one by line how to make a ddnet server which have command x and does y, thanks :owo: 17:51 < bridge> Show the issue with it to someone that knows C++ and they can help you figure out why it "won't work" which is how you get new information about the language 17:54 < bridge> i need to learn more c++, iam sucks at classes and don't know shit about virtual, constructor or destructor, 17:55 < bridge> when i was learning c++ at the past, i didn't see these things 17:56 < bridge> but i give you this, the convention in code is good 17:57 < bridge> Honestly, no one likes my advice on this but just learn C++ before you tinker would be my suggestion 17:57 < bridge> just copy and change stuff and see what happens 17:58 < bridge> i like it :owo: 17:58 < bridge> but it an easy way 17:58 < bridge> i am coming to this too 17:58 < ws-client> @teero777 wat u workin on 17:58 < bridge> better would be cluelessly change stuff and see what happend 17:58 < bridge> better would be cluelessly change stuff and see what happens 17:58 < bridge> If you want to learn by tinkering, well you'll just have to tinker. You need extremely good pattern matching skills. Look for examples of what you want to do in our codebase and try to extract a pattern from them to mimic them 17:59 < bridge> and the compiler give you a bunch of errors 17:59 < bridge> then u have to check vid "hello world in c++" first 17:59 < bridge> tournament visualization :pepeW: 17:59 < ws-client> what kind of tournament 17:59 < ws-client> which mode 17:59 < bridge> The usual next step is to offload the research and learning to a helpful C++ user, you send them the error and hope they are nice enough to try help you figure it out 18:00 < ws-client> @teero777 18:00 < bridge> gores 18:01 < ws-client> woah gores mods 18:01 < ws-client> or did you join kog team? 18:01 < bridge> nop 18:01 < ws-client> is it open source? 18:01 < bridge> will be 18:01 < ws-client> very pog 18:01 < bridge> i'll do ❤️ 18:01 < ws-client> u already got servers? 18:02 < ws-client> @teero777 where will it be rendered in the end? motd? chat? 18:02 < bridge> will be done with tees and serverside lasers 18:02 < ws-client> one annoying will probably be that most users do not play with fixed width fonts so aligning ascii is pain 18:02 < bridge> in big 18:02 < ws-client> ah okay never mind then 18:03 < ws-client> let me know when you open sourced ill give u a star on gh 18:03 < ws-client> and also if you need someone hostin servers i currently have 3 vps somehow 18:03 < bridge> ```cpp 18:03 < bridge> void PrintTournamentBoard() { 18:03 < bridge> int Cols = 4; 18:03 < bridge> int Rows = pow(2, Cols); 18:03 < bridge> for (int i = 0; i < Cols; ++i) { 18:03 < bridge> int Players = pow(2, i); 18:03 < bridge> int divider = std::round((float)(Rows) / (float)(Players + 1)); 18:04 < bridge> for (int j = 0; j < Rows; ++j) { 18:04 < bridge> if (j % divider == 0 && j >= divider && j <= divider * Players) { 18:04 < bridge> std::cout << '0'; 18:04 < bridge> } else 18:04 < bridge> std::cout << '-'; 18:04 < bridge> } 18:04 < bridge> std::cout << '\n'; 18:04 < bridge> } 18:04 < bridge> } 18:04 < bridge> ``` 18:04 < bridge> output: 18:04 < bridge> ``` 18:04 < bridge> --------0------- 18:04 < bridge> -----0----0----- 18:04 < bridge> ---0--0--0--0--- 18:04 < bridge> --0-0-0-0-0-0-0- 18:04 < bridge> ``` 18:04 < bridge> chiller pls fix 18:04 < bridge> wanted to make a mini ascii version for debugging 18:04 < bridge> <_voxeldoesart> whats this 18:04 < ws-client> yea i see 18:05 < ws-client> i hate such problems sorry ask all the other aoc tryhards they probably love it xd 18:05 < bridge> XD 18:06 < bridge> whoever help Teero with his problem will get 2 stars 18:07 < bridge> yea i dont like it either. the problem is that Rows shouldnt be an even number so it can display properly but if you just do `int Rows = pow(2, Cols) + 1;` it will cause more problemos 18:12 < bridge> does anyone have gpt 4? 18:15 < bridge> @teero777 first i think you mixed up rows and cols 18:16 < bridge> where? 18:16 < bridge> ur whole printtournamentboard function 18:16 < bridge> Let me give it a quick go 18:17 < bridge> I love these small ascii things 18:38 < bridge> NO 18:38 < bridge> I clicked run on ideone, it deleted all my code :pepeW: 18:45 < bridge> @teero777 18:45 < bridge> ```c 18:45 < bridge> #include 18:45 < bridge> 18:45 < bridge> int main(void) { 18:45 < bridge> int depth = 4; 18:45 < bridge> int f_gap = 3; 18:45 < bridge> int t_width = 1<<(depth - 2) * (1 + f_gap) - f_gap; 18:45 < bridge> 18:45 < bridge> int off = t_width / 2; 18:45 < bridge> int gap = (1<<(depth - 1)) * (1 + f_gap) - 1; 18:45 < bridge> for(int i = 0; i < depth; i++, off /= 2, gap /= 2) { 18:45 < bridge> printf("%-*s", off, ""); 18:45 < bridge> 18:45 < bridge> int pc = 1< for(int j = 0; j < pc; j++) 18:45 < bridge> printf("%-*s", gap + 1, "0"); 18:45 < bridge> putchar('\n'); 18:45 < bridge> } 18:45 < bridge> return 0; 18:45 < bridge> } 18:45 < bridge> ``` 18:46 < bridge> It's not the prettiest thing I've ever conjured ngl 18:46 < bridge> genius 18:46 < bridge> Actually didn't even test with different depths, I wonder if it works 😄 18:46 < bridge> ahah 18:46 < bridge> [Truncated] 18:46 < bridge> no it does not work with diffrent depths xdd 18:48 < bridge> ```cpp 18:48 < bridge> #include 18:48 < bridge> 18:48 < bridge> int main(void) { 18:48 < bridge> int depth = 10; 18:48 < bridge> int f_gap = 3; 18:48 < bridge> int t_width = (1 << (depth - 2)) * (1 + f_gap) - f_gap; 18:48 < bridge> 18:48 < bridge> int off = t_width / 2; 18:48 < bridge> int gap = (1 << (depth - 2)) * (1 + f_gap) - 1; 18:48 < bridge> for (int i = 0; i < depth; i++, off /= 2, gap /= 2) { 18:48 < bridge> printf("%-*s", off, ""); 18:48 < bridge> 18:48 < bridge> int pc = 1 << i; 18:49 < bridge> for (int j = 0; j < pc; j++) 18:49 < bridge> printf("%-*s", gap + 1, "0"); 18:49 < bridge> putchar('\n'); 18:49 < bridge> } 18:49 < bridge> return 0; 18:49 < bridge> } 18:49 < bridge> ``` 18:49 < bridge> here is fixed 18:49 < bridge> What did I get wrong anyway? kinda rushed through it 18:53 < bridge> Ah, ok, yours is wrong too 18:53 < bridge> you forgot parantheses 18:53 < bridge> and a -2 instead of -1 18:53 < bridge> huh? 18:54 < bridge> Try depth = 3 18:54 < bridge> hmm 18:54 < bridge> just print first line separately lol 18:54 < bridge> its broken on any depth 18:54 < bridge> ```c 18:54 < bridge> #include 18:54 < bridge> 18:54 < bridge> int main(void) { 18:54 < bridge> int depth = 5; 18:54 < bridge> int f_gap = 3; 18:54 < bridge> int t_width = (1<<(depth - 1)) * (1 + f_gap) - f_gap; 18:54 < bridge> 18:54 < bridge> int off = t_width / 2 + 1; 18:54 < bridge> int gap = (1<<(depth - 1)) * (1 + f_gap) - 1; 18:54 < bridge> for(int i = 0; i < depth; i++, off /= 2, gap /= 2) { 18:54 < bridge> printf("%-*s", off, ""); 18:54 < bridge> 18:54 < bridge> int pc = 1< for(int j = 0; j < pc; j++) 18:54 < bridge> printf("%-*s", gap + 1, "0"); 18:54 < bridge> putchar('\n'); 18:54 < bridge> } 18:54 < bridge> return 0; 18:55 < bridge> } 18:55 < bridge> ``` 18:55 < bridge> This one is fine 18:55 < bridge> I was indeed missing parens 18:55 < bridge> xdd 18:55 < bridge> yes 18:55 < bridge> And an off by one on line 8 18:55 < bridge> Anyway, it's ugly asf :F 18:57 < bridge> xd 18:57 < bridge> do lines inbetween the zeros 18:58 < bridge> I did the math, you do the lines between the zeros 18:58 < bridge> thx 18:58 < bridge> There is still an off by one there somewhere btw 😄 18:59 < bridge> <3x1st_> how to fix this shit? 18:59 < bridge> <3x1st_> https://cdn.discordapp.com/attachments/293493549758939136/1183105680459178024/image.png?ex=65872007&is=6574ab07&hm=3cb83f9052de936db37fd1b7540afa28e478875edddbf540895b729269254d2b& 18:59 < bridge> <3x1st_> anyone know? 19:00 < bridge> no error in ur screenshot 19:00 < bridge> <3x1st_> a 19:00 < bridge> <3x1st_> xD 19:00 < bridge> <3x1st_> 1s 19:01 < bridge> <3x1st_> always when i start compile i have same error 19:08 < bridge> ```c 19:08 < bridge> #include 19:08 < bridge> 19:08 < bridge> int main(void) { 19:08 < bridge> int depth = 4; 19:08 < bridge> int f_gap = 5; 19:08 < bridge> int t_width = (1<<(depth - 1)) * (1 + f_gap) - f_gap; 19:08 < bridge> 19:08 < bridge> int off = (t_width / 2); 19:08 < bridge> int gap = (1<<(depth - 1)) * (1 + f_gap) - 1; 19:08 < bridge> for(int i = 0; i < depth; i++, gap /= 2) { 19:08 < bridge> printf("%-*s", off, ""); 19:08 < bridge> 19:08 < bridge> int pc = 1< for(int j = 0; j < pc; j++) 19:08 < bridge> printf("%-*s", gap + 1, "0"); 19:08 < bridge> putchar('\n'); 19:08 < bridge> 19:08 < bridge> off = off / 2 - 1; 19:08 < bridge> } 19:08 < bridge> return 0; 19:08 < bridge> } 19:08 < bridge> ``` 19:08 < bridge> final answer 19:08 < bridge> I had the recurrence relation correct on paper but for some reason didn't transcribe it down in C correctly 19:09 < bridge> off isn't halved, it's off/2 - 1 19:09 < bridge> xd you removed the lonely zeros to the right xd 19:09 < bridge> you removed the lonely zeros to the right xd 19:09 < bridge> gj 19:10 < bridge> Another reason I don't want to print the lines in between the 0s is that it won't look as cute without the printf %-* trick 😄 19:10 < bridge> true 19:11 < bridge> now instead of printing "0" print centered random strings with a max length of 16 19:11 < bridge> NO 19:11 < bridge> Actually it's probably not that bad 19:16 < bridge> root 19:16 < bridge> there isnt even an error on the screenshot XD what are u talking about 19:17 < bridge> im talking about root 19:18 < bridge> the guy is big boy, can compile with root 19:22 < bridge> Actually it is that bad 19:26 < bridge> okay then make it horizontal :troll: 19:35 < bridge> <_voxeldoesart> WOOO 19:40 < bridge> but why do you specifically not like rust when you haven't even used it yet? ^^ 19:41 < bridge> I have a guess why but I won't say it until he answers 19:48 < bridge> <_voxeldoesart> same. i am waiting patiently 20:09 < bridge> if he doesnt like rust he most definently wont like the Ford F-150 20:29 < bridge> @draggory thanks for suggestion btw 20:29 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1183128383396270200/Desktop_2023.12.02_-_20.00.07.02.DVR_3.mp4?ex=6587352c&is=6574c02c&hm=cb2bd7c9044f4e5f04420d996cf8af0f63d4935265d1fd9c60b904236981fa60& 20:43 < bridge> how do i setup the mysql connection with windows? it keeps asking me to install mysql even though the connector is already installed 20:44 < bridge> does it even work? because I'd hoped for a library on ddnet-libs but apparently it doesn't exist 20:46 < bridge> I don't know if anyone tested on windows 20:46 < bridge> I'd presume it doesn't work 20:47 < bridge> are your needs not satisfied by sqlite? 20:48 < bridge> sadly no, I have a dualboot with debian for coding but sometimes it's kinda annoying to switch os just for testing smth 20:49 < bridge> but you should be able to test stuff with sqlite as well 20:49 < bridge> why do you need mysql? 20:50 < bridge> well mysql supports advanced querying, stored procedures & ideal for evolving projects 20:54 < bridge> I see 20:55 < bridge> I mean, I don't think many people use mysql with windows anyways, but it's still annoying that it's not supported 20:56 < bridge> if you don't run multiple machines for ddnet servers, sqlite should be fine 20:56 < bridge> I'm not aware of a server hoster using windows machines 20:56 < bridge> I'm not aware of a ddnet server hoster using windows machines 20:58 < bridge> ye, I'd have multiple instances of ddnet running on the same machine under linux, so sqlite wouldn't be the most suitable option for this scenario right 21:04 < bridge> that's no problem for sqlite 21:04 < bridge> How did oyu not figure this out earlier xD 21:05 < bridge> it's only a problem if you host servers on multiple different machines and want them to be in sync 21:09 < bridge> cuz im dumb 21:09 < bridge> how does ddnet do this? 🙂 21:10 < bridge> how does ddnet do this? 😮 21:11 < bridge> it uses a single mysql server for all ddnet game servers 21:11 < bridge> thanks 🙂 21:12 < bridge> But keep in mind, if you update your gameserver source and you add information to some queries, make sure to do proper migrations to your database 21:14 < bridge> In one vm can you have 3 or 4 servers open with the same SQL database? 21:14 < bridge> you can have many more servers open with the same sqlite3 database 21:14 < bridge> 17.4 >( 21:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1183139701511696514/image.png?ex=65873fb6&is=6574cab6&hm=10dee4dea1e33be91ec27d83157fa6642d700b744fe5ea9726dd7d42e8056f8b& 21:14 < bridge> or also with the same mysql database 21:14 < bridge> 17.4 >:( 21:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1183139701511696514/image.png?ex=65873fb6&is=6574cab6&hm=10dee4dea1e33be91ec27d83157fa6642d700b744fe5ea9726dd7d42e8056f8b& 21:17 < bridge> You have to adjust the max_connections in mysql at some point ::D 21:17 < bridge> You have to adjust the max_connections in mysql at some point 😄 21:18 < bridge> Sync is done with script like ddnet I think 21:20 < bridge> what kind of activating account do u think is better, sending a code and then copying that code to website when u try to login or send a link in email and when u click on it account activates :thonk: 21:20 < bridge> depends on the use-case 21:20 < bridge> I will try it, thanks 21:20 < bridge> 21:21 < bridge> eeehm, its a.... let it be a blog 21:22 < bridge> But both should be fine, no? 21:22 < bridge> Just write the code inside the email and append a link with the code embedde 21:22 < bridge> Just write the code inside the email and append a link with the code embedded 21:22 < bridge> maybe one is more convenient than the ohter one 21:23 < bridge> maybe one is more convenient than the ohter 21:24 < bridge> About the accounts I think 21:24 < bridge> - Unique ID of the player 21:24 < bridge> - Identifier is based on the MAC of the device, can you get the MAC of the router through a lookup? 21:24 < bridge> MAC of the device is spoofable 21:26 < bridge> you cannot get the mac address from the client 21:27 < bridge> 21:30 < bridge> I know 22:19 < ChillerDragon> newer ddnet client boots way slower is that also a feature? 22:19 < bridge> did u measure it? 22:21 < ChillerDragon> no need 22:21 < ChillerDragon> but i can for u real quick 22:22 < ChillerDragon> 8s vs 3s 22:22 < ChillerDragon> and the 3s is 90% qutting time 22:22 < ChillerDragon> since i used ``time DDNet quit`` its rigged 22:22 < bridge> yeah 22:22 < ChillerDragon> basically old was instant new is multiple seconds 22:22 < bridge> but the quit thing is a problem 22:23 < bridge> that needs a fix 22:23 < ChillerDragon> now the boot thing is a problem too 22:23 < ChillerDragon> ah i had opengl1 22:23 < ChillerDragon> how did that happen 22:23 < ChillerDragon> xd 22:23 < ChillerDragon> nvm vulkan is as slow 22:24 < bridge> rtx 4090 22:24 < bridge> 1. r u using real ddnet 22:24 < bridge> 2. r u using release b 22:24 < ChillerDragon> no 22:24 < ChillerDragon> dont think 22:24 < ChillerDragon> but old debug used to boot instant 22:25 < bridge> tja 22:26 < ChillerDragon> time to downgrade xd 22:26 < ChillerDragon> i cant work like this and cba to debug the boot time right now 22:44 < bridge> gl to fix 22:45 < bridge> i passed througt that way 23:09 < bridge> ChillerDragon: could you bisect the issue?