00:10 < bridge_> The source code has changed a bit since this article was written. Mainly that there is no `CHAT_COMMAND` macro any more. They're now defined in the `RegisterDDRaceCommands()` function instead. What exactly doesn't work? 00:21 < bridge_> <.lepinpin> ok thx 00:21 < bridge_> <.lepinpin> but i still use an old ddnet 01:08 < bridge_> <8_9z> aip gores map 01:08 < bridge_> <8_9z> dawnload link pls 01:13 < bridge_> https://github.com/ddnet/ddnet-maps/raw/master/types/oldschool/maps/AiP%2DGores.map 01:21 < bridge_> norming 01:22 < bridge_> nighting 01:41 < bridge_> @tsfreddie hi friend 02:00 < ws-client> why do you use an old ddnet @.lepinpin ? 02:02 < ws-client> @gumbatw my financials are confidential. 02:02 < ws-client> and you tagged me just fine :) 02:02 < ws-client> https://zillyhuhn.com/cs/.1724889693.png 02:03 < ws-client> @gumbatw if you want to write a client I can recommend reading a bit of the documentation there are 3 out there. 02:03 < ws-client> https://chillerdragon.github.io/teeworlds-protocol/ 02:04 < ws-client> https://protocol-docs.teeframe.com/ 02:04 < ws-client> https://github.com/heinrich5991/libtw2/tree/master/doc 02:05 < ws-client> but as louis said i also already implemented most of the protocol parsing (no state machine and snapshot support yet) in python https://gitlab.com/teeworlds-network/twnet_parser/-/tree/master?ref_type=heads 02:05 < ws-client> Here is a simple usage of the library that connects to a 0.7 server and downloads the map https://gitlab.com/teeworlds-network/twnet_parser/-/blob/6ffecf5487715589ff58d1ee5ac0f7e53c4eea0c/examples/07/download_map/download_map.py 02:09 < ws-client> @milkeeycat the only unpure assembly i used are self written nasm macros that generate assembly. I depend on nothing external or non assembly. Sending and receiving udp is done with syscalls to the linux kernel. 02:17 < ws-client> xxxD https://github.com/teeworlds/teeworlds/issues/3263 02:26 < bridge_> damn XD 03:05 < bridge_> literally bot 06:43 < bridge_> chillerdragon: i wanted to take a look at code what data has to be sent to connect a tee 06:43 < bridge_> But ig it's time to look at ddnet source code 06:44 < bridge_> I thought maybe you have the same code in C or smth 06:47 < bridge_> Ill start with huffman probably 07:31 < bridge_> chillerdragon: there's a typo https://chillerdragon.github.io/teeworlds-protocol/06/fundamentals.html `alorithm` 07:53 < bridge_> Make a pr xd 07:58 < bridge_> we need to know 08:25 < ws-client> woah gitlab has an AI assistant before github?! 08:25 < ws-client> https://zillyhuhn.com/cs/.1724912638.png 08:26 < ws-client> @milkeeycat i have all the code also in go, ruby and python if you need xd but ye this is what you need to send https://chillerdragon.github.io/teeworlds-protocol/07/traffic.html 08:26 < ws-client> just check wireshark with heinrichs dissector thats the best to learn imo 08:26 < bridge_> Ill write it first in C 08:27 < bridge_> Because im 100% surr there will be goofy bugs in my language xd 08:27 < ws-client> pussy 08:27 < ws-client> find bugs by implementing a client 08:28 < bridge_> Ok, i changed mind, challenge accepted 08:28 < ws-client> pro 08:28 < bridge_> I have if statements now btw 😏 08:28 < ws-client> gangster 08:28 < ws-client> can you send and receive udp? 08:29 < bridge_> Yea 08:29 < bridge_> If c can do it, i can do it as well :santatrollet: 08:29 < ws-client> how send tutorial 08:30 < bridge_> chiller when do you go back to using discord xd 08:30 < bridge_> Or are you stuck in tty or smth 08:30 < ws-client> not planned atm why? 08:30 < bridge_> No particular reason 08:31 < ws-client> when you switch away from discord? 08:32 < bridge_> I wish 08:32 < ws-client> i am not stuck in a tty these days because of ping 08:32 < ws-client> https://zillyhuhn.com/cs/.1724913106.png 08:32 < ws-client> i use the web front end because it has no lags while typing like my ssh irc client 08:32 < bridge_> That cog is too close, add padding rn 08:33 < ws-client> send pr 08:33 < bridge_> Discord is slow and disgusting 08:33 < bridge_> Chiller make new chat app we'll transfer the ddnet discord to it 08:33 < ws-client> https://chat.zillyhuhn.com/ 08:33 < ws-client> done 08:33 < bridge_> Now use htmx there 08:34 < ws-client> send pr 08:34 < bridge_> Tbh I forgot my pw xd 08:34 < ws-client> lol 08:35 < bridge_> New rust project ideas let's go I know what to do today 08:36 < ws-client> wats the idea? 08:36 < bridge_> Making a proper chat and voice app seems fun 08:36 < ws-client> i wouldnt call it fun but nice that you do it 08:36 < bridge_> classic `sizeof (struct sockaddr) 08:36 < bridge_> - __SOCKADDR_COMMON_SIZE 08:36 < bridge_> - sizeof (in_port_t) 08:36 < bridge_> - sizeof (struct in_addr)` 08:36 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1278604238397898763/image.png?ex=66d1687d&is=66d016fd&hm=b02650cbd48f5967b91bef7b4da03fc7de95b8627460fd25c39f9c285b3d4a5f& 08:37 < ws-client> sockaddr sizes are the trollest 08:42 < bridge_> It’s not 08:54 < bridge_> Idk my mind tells me many dopamine 08:57 < bridge_> well, it didn't take long to get not working code 08:57 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1278609502190567485/image.png?ex=66d16d64&is=66d01be4&hm=1dff8fa701ca517e54856422d135551e639f12d97d2c5f192518517884b20096& 08:57 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1278609502756671488/image.png?ex=66d16d64&is=66d01be4&hm=76ead9988aabaa571f3f785ebd3b429473fc7bdee8b0d80188388b5b1b61ffa5& 08:58 < bridge_> well, it didn't take long to get not working code 😎 08:58 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1278609502190567485/image.png?ex=66d16d64&is=66d01be4&hm=1dff8fa701ca517e54856422d135551e639f12d97d2c5f192518517884b20096& 08:58 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1278609502756671488/image.png?ex=66d16d64&is=66d01be4&hm=76ead9988aabaa571f3f785ebd3b429473fc7bdee8b0d80188388b5b1b61ffa5& 08:58 < bridge_> are u null terminating the printf? xd 08:58 < bridge_> yea 08:58 < bridge_> iirc thats why u get % 08:58 < bridge_> it's because there's no `\n` 08:58 < bridge_> ah 08:59 < bridge_> @milkeeycat did u add proper padding and alignment 08:59 < bridge_> im sure its that 08:59 < bridge_> i didn't even use the struct yet xddd 08:59 < bridge_> oh xd 08:59 < bridge_> i should read xd 09:00 < bridge_> it doesn't work with passing three god damn integers 09:00 < bridge_> well i guess u havent implemented properly the C call convention then 09:00 < bridge_> btw 09:00 < bridge_> af_inet is u8 09:00 < bridge_> printf works tho :santatrollet: 09:00 < bridge_> the argument requires a u32 09:01 < bridge_> do u auto cast or smth 09:01 < bridge_> it also returns a i32 09:01 < bridge_> and u make it a i64 09:01 < bridge_> also isnt %d for 32 bit integers 09:01 < bridge_> iirc 09:02 < bridge_> bruv 09:02 < bridge_> you can assign smaller type to bigger, u16 a = (u8)val; 09:02 < bridge_> did u know a pointer typer that fits more for char* is probs i8* 09:02 < bridge_> in rust its i8 09:03 < bridge_> to map C char 09:04 < bridge_> ok, now it returns not `-1` :poggers2: 09:05 < bridge_> Strace to see what went wrong 09:05 < bridge_> you better don't know what was wrong :justatest: 09:06 < bridge_> Tell me, I can handle it 09:07 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1278611983469379676/image.png?ex=66d16fb4&is=66d01e34&hm=cb1d0ba571be387aa1efe6e3d8870210257d079f69583c41a6197315307bc3da& 09:08 < bridge_> 09:09 < bridge_> it was generating mov instructions where they are not executed 09:09 < bridge_> How does that happen even 09:10 < bridge_> it sees a global variable, it generates `.comm`, it sees value after `=` in variable declaration, it generates instructions for it :justatest: 09:18 < bridge_> i should treat global variables differently and allow only expressions which can be evaluated at compile time :\ 09:21 < bridge_> @learath2 09:22 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1278615617355649087/GWDRBA1XYAAIdVp.png?ex=66d17316&is=66d02196&hm=ce40bfdf85389ac1170d6d563084ec4f65e96835f52fda2c9f49ef840c130d0c& 09:23 < bridge_> Aye 09:23 < bridge_> So true for once 09:24 < bridge_> Upscalers play a big part in this too. Why optimize games if we can just add upscalers and call it a day? 09:24 < bridge_> why add it now tho when you can just make a local variable xdd 09:25 < bridge_> Upscalers play a big part in this too. Some dev: Why optimize our game if we can just add upscalers and call it a day? 10:30 < bridge_> <.lepinpin> what the now version of this pls m_ClientID\ 10:30 < bridge_> <.lepinpin> what the now version of this pls m_ClientID 10:33 < bridge_> <.lepinpin> oh its not m_ClientID but m_ClientId 10:39 < bridge_> ye this was changed 10:47 < bridge_> <.lepinpin> ok but the command still not working 10:49 < bridge_> I didn't wrote that blog posts but that tutorial is fine to me 10:50 < bridge_> <.lepinpin> so you write /aboutme ? 10:51 < bridge_> no I didn't just check blog's tutorial about it and i think it's should work just fine, are you getting error or something ? 10:51 < bridge_> <.lepinpin> 2024-08-29 10:51:33 I chat: *** No such command: aboutme. Use /cmdlist for a list of all commands. 10:52 < bridge_> okey let me try myself that tutorial then let you know the result 10:53 < bridge_> <.lepinpin> ok thx 11:03 < ws-client> i failed 5 times in a row with ``git submodule update`` on ``fatal: Fetched in submodule path '../ddnet-libs', but it did not contain e78f350e7898fc6b0702cdc3b7ce6ee347c97d49. Direct fetching of that commit failed.`` is this my unstable internet? 11:06 < ws-client> too bad one can not continue failed git downloads 11:30 < bridge_> https://news.ycombinator.com/item?id=41386667 11:30 < bridge_> https://hackaday.com/2023/07/11/displayport-a-better-video-interface/ 11:39 < bridge_> mirror's edge, trackmania forever 11:40 < bridge_> baked lighting in mirror's edge and trackmania forever 11:41 < bridge_> it's fine just need a bit modification 11:44 < bridge_> 1. gamecontext.cpp 11:44 < bridge_> add 11:44 < bridge_> `Console()->Register("aboutme", "?i[times]", CFGFLAG_CHAT | CFGFLAG_SERVER, ConAboutMe, this, "Show info about yourself");` 11:44 < bridge_> after 11:44 < bridge_> `Console()->Register("kill", "", CFGFLAG_CHAT | CFGFLAG_SERVER, ConProtectedKill, this, "Kill yourself when kill-protected during a long game (use f1, kill for regular kill)");` 11:44 < bridge_> 11:44 < bridge_> 2. gamecontext.cpp 11:44 < bridge_> add 11:44 < bridge_> ```void CGameContext::ConAboutMe(IConsole::IResult *pResult, void *pUserData) 11:44 < bridge_> { 11:44 < bridge_> CGameContext *pSelf = (CGameContext *)pUserData; 11:44 < bridge_> 11:44 < bridge_> if(!CheckClientId(pResult->m_ClientId)) 11:44 < bridge_> return; 11:44 < bridge_> 11:44 < bridge_> int Times = 1; 11:44 < bridge_> 11:44 < bridge_> if(pResult->NumArguments() > 0) 11:44 < bridge_> Times = pResult->GetInteger(0); 11:44 < bridge_> 11:44 < bridge_> if(Times < 1) 11:44 < bridge_> Times = 1; 11:44 < bridge_> 11:44 < bridge_> const char *pName = pSelf->Server()->ClientName(pResult->m_ClientId); 11:44 < bridge_> int ClientVersion = pSelf->GetClientVersion(pResult->m_ClientId); 11:44 < bridge_> int Team = pSelf->GetDDRaceTeam(pResult->m_ClientId); 11:44 < bridge_> CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientId]; 11:44 < bridge_> 11:44 < bridge_> // Check if it's null 11:44 < bridge_> if(!pPlayer) 11:44 < bridge_> { 11:45 < bridge_> Result: 11:45 < bridge_> `2024-08-29 13:10:30 I chat: *** Name: MD | ID: 0 | Version: 18040 | Team: 0 | Current position: 396.000000, 2225.000000` 11:51 < ws-client> ez my git clone worked 11:52 < bridge_> what did u clone 11:52 < ws-client> submodules 11:52 < ws-client> failed becuase of bad internet :( 11:56 < bridge_> china firewall? 12:32 < bridge_> <.lepinpin> it dont work 12:32 < bridge_> <.lepinpin> i have to type /aboutme ? 12:32 < bridge_> yes in chat you should type /aboutme 12:34 < bridge_> <.lepinpin> and for the second code do you mean ddracechat? 12:34 < bridge_> if you done all step that I told you and you still getting `No such command: aboutme. Use /cmdlist for a list of all commands.` you probably write register part in wrong function check it again 12:34 < bridge_> 1. gamecontext.cpp 12:34 < bridge_> add 12:34 < bridge_> `Console()->Register("aboutme", "?i[times]", CFGFLAG_CHAT | CFGFLAG_SERVER, ConAboutMe, this, "Show info about yourself");` 12:34 < bridge_> after 12:34 < bridge_> `Console()->Register("kill", "", CFGFLAG_CHAT | CFGFLAG_SERVER, ConProtectedKill, this, "Kill yourself when kill-protected during a long game (use f1, kill for regular kill)");` 12:34 < bridge_> 12:34 < bridge_> 2. ddracechat.cpp 12:34 < bridge_> add 12:34 < bridge_> ```void CGameContext::ConAboutMe(IConsole::IResult *pResult, void *pUserData) 12:34 < bridge_> { 12:34 < bridge_> CGameContext *pSelf = (CGameContext *)pUserData; 12:34 < bridge_> 12:35 < bridge_> if(!CheckClientId(pResult->m_ClientId)) 12:35 < bridge_> return; 12:35 < bridge_> 12:35 < bridge_> int Times = 1; 12:35 < bridge_> 12:35 < bridge_> if(pResult->NumArguments() > 0) 12:35 < bridge_> Times = pResult->GetInteger(0); 12:35 < bridge_> 12:35 < bridge_> if(Times < 1) 12:35 < bridge_> Times = 1; 12:35 < bridge_> 12:35 < bridge_> const char *pName = pSelf->Server()->ClientName(pResult->m_ClientId); 12:35 < bridge_> int ClientVersion = pSelf->GetClientVersion(pResult->m_ClientId); 12:35 < bridge_> int Team = pSelf->GetDDRaceTeam(pResult->m_ClientId); 12:35 < bridge_> CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientId]; 12:35 < bridge_> 12:35 < bridge_> // Check if it's null 12:35 < bridge_> if(!pPlayer) 12:35 < bridge_> { 12:35 < bridge_> yes 12:35 < bridge_> <.lepinpin> ok bc still dont work 12:35 < bridge_> you getting same error ? 12:35 < bridge_> <.lepinpin> yes 12:35 < bridge_> what's your ddnet server version ? 12:36 < bridge_> <.lepinpin> https://cdn.discordapp.com/attachments/293493549758939136/1278664457115144235/image.png?ex=66d1a093&is=66d04f13&hm=c3625d5b76a8216ecd1dd14238f7d35e4a44899f2fc4fe43cbf45ceefb02d4b6& 12:36 < bridge_> <.lepinpin> i go to public server 12:36 < bridge_> it's correct 12:37 < bridge_> well don't know it's fine for me and work as I did send result to you 12:40 < bridge_> <.lepinpin> mhh you tell to put after this void CGameContext::ConUnFreezeHammer(IConsole::IResult *pResult, void *pUserData) 12:40 < bridge_> <.lepinpin> { 12:40 < bridge_> <.lepinpin> // codes 12:40 < bridge_> <.lepinpin> } but i dont have this 12:46 < bridge_> <.lepinpin> its not in ddrace chat but ddracecommands 12:58 < bridge_> 1. gamecontext.cpp 12:58 < bridge_> add 12:58 < bridge_> `Console()->Register("aboutme", "?i[times]", CFGFLAG_CHAT | CFGFLAG_SERVER, ConAboutMe, this, "Show info about yourself");` 12:58 < bridge_> after 12:58 < bridge_> `Console()->Register("kill", "", CFGFLAG_CHAT | CFGFLAG_SERVER, ConProtectedKill, this, "Kill yourself when kill-protected during a long game (use f1, kill for regular kill)");` 12:58 < bridge_> 12:58 < bridge_> 2. ddracechat.cpp 12:58 < bridge_> add 12:58 < bridge_> ```void CGameContext::ConAboutMe(IConsole::IResult *pResult, void *pUserData) 12:58 < bridge_> { 12:58 < bridge_> CGameContext *pSelf = (CGameContext *)pUserData; 12:58 < bridge_> 12:58 < bridge_> if(!CheckClientId(pResult->m_ClientId)) 12:58 < bridge_> return; 12:58 < bridge_> 12:58 < bridge_> int Times = 1; 12:58 < bridge_> 12:58 < bridge_> if(pResult->NumArguments() > 0) 12:58 < bridge_> Times = pResult->GetInteger(0); 12:59 < bridge_> 12:59 < bridge_> if(Times < 1) 12:59 < bridge_> Times = 1; 12:59 < bridge_> 12:59 < bridge_> const char *pName = pSelf->Server()->ClientName(pResult->m_ClientId); 12:59 < bridge_> int ClientVersion = pSelf->GetClientVersion(pResult->m_ClientId); 12:59 < bridge_> int Team = pSelf->GetDDRaceTeam(pResult->m_ClientId); 12:59 < bridge_> CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientId]; 12:59 < bridge_> 12:59 < bridge_> // Check if it's null 12:59 < bridge_> if(!pPlayer) 12:59 < bridge_> { 12:59 < bridge_> my bad after `ConProtectedKill` 12:59 < bridge_> in ddracechat 12:59 < bridge_> I was busy and guide you in wrong way sorry 13:01 < bridge_> my bad it's should be after `ConProtectedKill` 13:01 < bridge_> in ddracechat.cpp 13:02 < bridge_> <.lepinpin> ok thx np 13:04 < bridge_> yw 13:13 < bridge_> <.lepinpin> 2024-08-29 13:13:43 I chat: *** No such command: aboutme. Use /cmdlist for a list of all commands 13:14 < bridge_> <.lepinpin> :justatest: 13:15 < bridge_> 😭 13:15 < bridge_> <.lepinpin> https://cdn.discordapp.com/attachments/293493549758939136/1278674456604049428/image.png?ex=66d1a9e3&is=66d05863&hm=46a6848084f4a47d31b03a9f4c6583f121301f891f7b1f6f7b05d70bbca5ffb2& 13:16 < bridge_> <.lepinpin> good ? 13:16 < bridge_> <.lepinpin> https://cdn.discordapp.com/attachments/293493549758939136/1278674644894879845/image.png?ex=66d1aa0f&is=66d0588f&hm=cc0b0539768c0c373929fbb4f88020128fbbae2d82440e3d67109624e9364c40& 13:17 < bridge_> <.lepinpin> https://cdn.discordapp.com/attachments/293493549758939136/1278674963540344852/image.png?ex=66d1aa5b&is=66d058db&hm=92d5180285e507c41220d0bb79832556ee8315f0ed827312f0201f9a2c135649& 13:18 < bridge_> yes it's completely correct as I know 13:19 < bridge_> are you even run the build one server ? 13:20 < bridge_> are you compile it right ?! 13:20 < bridge_> <.lepinpin> yes 13:20 < bridge_> and run the right one ? 13:21 < bridge_> <.lepinpin> hammer to build and the play button to launch 13:21 < bridge_> <.lepinpin> https://cdn.discordapp.com/attachments/293493549758939136/1278675787461034014/image.png?ex=66d1ab20&is=66d059a0&hm=9d5dfbbc948d0446b825d5a5d45d54dc5b9e2adf9c958ddf631067da8fb26213& 13:22 < bridge_> don't know I'm using visual studio 2022 on windows and don't know about vs code 13:22 < bridge_> <.lepinpin> is clion 13:22 < bridge_> <.lepinpin> https://cdn.discordapp.com/attachments/293493549758939136/1278676212226457610/image.png?ex=66d1ab85&is=66d05a05&hm=0c8bef9e79f91a1afa73f55b631060fa885e22ea12e54085c280280fab0939f3& 13:23 < bridge_> omg 😄 13:23 < bridge_> <.lepinpin> ?? 13:23 < bridge_> <.lepinpin> what 13:23 < bridge_> <.lepinpin> i do something wrong 13:23 < bridge_> I no idea about clion but find build folder 13:23 < bridge_> <.lepinpin> ok ye 13:23 < bridge_> <.lepinpin> where 13:23 < bridge_> <.lepinpin> ? 13:23 < bridge_> what's os you are using 13:24 < bridge_> <.lepinpin> windowz 13:24 < bridge_> <.lepinpin> windows 13:24 < bridge_> it's should be under build/debug I think 13:24 < bridge_> and you are on game-client 13:24 < bridge_> <.lepinpin> yes 13:24 < bridge_> you should be on game-server and then build 13:26 < bridge_> <.lepinpin> aghg 13:26 < bridge_> <.lepinpin> i thought it was for client 13:26 < bridge_> <.lepinpin> https://cdn.discordapp.com/attachments/293493549758939136/1278677149603074189/image.png?ex=66d1ac65&is=66d05ae5&hm=5fc82bce6556b68c44843543a309f73de003b1f3e36835730f0b543a34196b4d& 13:26 < bridge_> commands are server-side 13:26 < bridge_> <.lepinpin> oh ok 13:26 < bridge_> done ?! 13:26 < bridge_> <.lepinpin> yee 13:26 < bridge_> good luck 😉 13:26 < bridge_> <.lepinpin> thx 13:27 < bridge_> your welcome 14:46 < bridge_> <ƤØŢĀŤ0Co> Where can I find flags for server? 14:46 < bridge_> <ƤØŢĀŤ0Co> ./DDNet-Server -f test.cfg 14:46 < bridge_> <ƤØŢĀŤ0Co> Exampkle 14:46 < bridge_> <ƤØŢĀŤ0Co> ./DDNet-Server -f test.cfg 14:47 < bridge_> <ƤØŢĀŤ0Co> Example 14:58 < bridge_> https://github.com/ddnet/ddnet/blob/edcc3245f435fae9ce5af08ee024269841cf0c48/src/engine/shared/console.cpp#L808-L830 probably this code handles the flags 14:58 < bridge_> How to change controls in ddnet mobile? 14:59 < bridge_> afair ddnet server handles rest of console input as one contiguous command, like in f1 14:59 < bridge_> u can place some cfg right there and do `./DDNet-Server "exec my.cfg" 14:59 < bridge_> u can place some cfg right there and do `./DDNet-Server "exec my.cfg"` 16:33 < bridge_> time to get to work 17:31 < bridge_> Hello 17:32 < bridge_> hello 17:36 < bridge_> got a m3 pro with 36gb ram at work 17:43 < bridge_> nice 17:46 < bridge_> gg 18:22 < bridge_> can it run ddnet? 18:22 < bridge_> no lol m3 is so slow for ddnet 19:54 < bridge_> Ladies and gentlemen, I had wrong expected output in tests from the moment I wrote them :pepeW: 20:02 < bridge_> "Connect address", huh 20:03 < bridge_> why do images from *skins* directory show up and work properly in game when placed as external images but other dont 20:03 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1278776980724256881/screenshot_2024-08-29_20-00-37.png?ex=66d2095e&is=66d0b7de&hm=a1d2767e0e622608bc39db883e931a49222f19f9cee758fde07ccd936b576399& 20:03 < bridge_> like naming the image `../skins/twinbop` and placing it as external works fine 20:04 < bridge_> but naming it `../countryflags/UA` doesnt 20:04 < bridge_> and this is the console output `2024-08-29 19:49:54 E game/png: failed to open file. filename='mapres/../countryflags/UA.png'` 20:08 < bridge_> Would like for someone to explain where all the new strings occur, because the only string I found ingame is `Show client IDs (scoreboard, chat, spectator)` 20:09 < bridge_> bro works at Money Waste McRich Inc. 20:10 < bridge_> I don't know why this is a thing, but probably because of this in `storage.cpp`: 20:10 < bridge_> ```cpp 20:10 < bridge_> if(str_startswith(pFilename, "mapres/../skins/")) 20:10 < bridge_> { 20:10 < bridge_> pFilename = pFilename + 10; // just start from skins/ 20:10 < bridge_> } 20:10 < bridge_> ``` 20:10 < bridge_> otherwise I will have to fire myself for not finishing the update in time :D 20:10 < bridge_> @robyt3 so it works only for skins directory? 20:11 < bridge_> Try to connect to a server with an address that cannot be resolved, e.g. `foo.localhost` 20:12 < bridge_> yeah, I assume it's some weird backwards compatibility. but I guess we should prevent slashes in map image names 20:12 < bridge_> i saw it being used on infclass and i tried to replicate it 20:12 < bridge_> maybe thats why that code is there 20:13 < bridge_> Seems like it: https://github.com/ddnet/ddnet/commit/0b5942fc044beb627005a2e381cb45ac421f3b12 20:14 < bridge_> okaaay, now I wonder how I translate the term "connect address", if it is not a verb 20:14 < bridge_> The address to connect to 20:15 < bridge_> If not French, we wouldn't have had this trouble... 20:36 < bridge_> Now, where these occur? 20:36 < bridge_> ``` 20:36 < bridge_> Normal: 20:36 < bridge_> Team: 20:36 < bridge_> Dummy settings 20:36 < bridge_> Toggle to edit your dummy settings 20:36 < bridge_> Randomize 20:36 < bridge_> Are you sure that you want to delete '%s'? 20:36 < bridge_> Delete skin 20:36 < bridge_> Basic 20:36 < bridge_> Custom 20:36 < bridge_> Unable to delete skin 20:36 < bridge_> Customize 20:36 < bridge_> ``` 20:37 < bridge_> Probably new features for akin management on 0.7 servers 20:39 < bridge_> 🙄 20:41 < bridge_> All in the Tee 0.7 settings on 0.7 servers, though some will get removed again eventually when the UI gets reworked 20:43 < bridge_> I suppose 20:43 < bridge_> ``` 20:43 < bridge_> Could not connect dummy 20:43 < bridge_> Dummy is not allowed on this server 20:43 < bridge_> Please wait… 20:43 < bridge_> ``` 20:43 < bridge_> are also related to this? 20:48 < bridge_> They are all related to connecting your dummy 20:49 < bridge_> "Please wait" when you try to connect and disconnect dummy quickly 20:50 < bridge_> I don't think you need to test how they look ingame though, they are shown in chat and as tooltips, so there should always be enough space 20:50 < bridge_> `Please wait…` is not in the button? 20:51 < bridge_> No, it's also a tooltip over the button 20:52 < bridge_> While the button is disabled due to fast connecting/disconnecting 20:52 < bridge_> how do u write Localize("Please wait…") 2 times for the same button and not think u should store the constant 20:52 < bridge_> https://tenor.com/view/emoji-meme-jar-gif-4658690738464352739 20:52 < bridge_> ??? 20:53 < bridge_> me when i get confused at a developer message in developer chat 20:53 < bridge_> I guess it is time to download Teeworlds 20:53 < bridge_> You can connect to any 0.7 server that is online 20:53 < bridge_> it's time for me to find the drill 20:53 < bridge_> where tf did i pus is 20:53 < bridge_> where tf did i put it 20:53 < bridge_> Check the server version in the server info tab 20:53 < bridge_> oh well 20:54 < bridge_> the point of chiller's big pr recently was to make 0.7 servers playable on ddnet 20:54 < bridge_> u shouldnt need teeworlds 0.7 client then 20:56 < bridge_> confused I am! 20:59 < bridge_> you download ddnet client and join a teeworlds/0.7 server 21:13 < bridge_> I was aswell, but its a noble approach to try to keep the clients compatible, even tho 20 people play 0.7 ... 21:47 < bridge_> <7777rr7777> Забирайте S.T.A.L.K.E.R 2 предзаказ на свой Steam Бесплатно https://lnky.ru/cp1ry не знаю баг это или нет но я забрал