00:48 < bridge> Всем привет 08:06 < bridge> what is mapbugs.cpp? 08:06 < bridge> or more acuatly what does it do? 08:06 < bridge> and whats it for? 08:25 < bridge> is the entire momentcap static directory hosted anywhere like on github or as a zip? 08:34 < bridge> idk, but i remember there is a command called `/mapbug` 08:34 < bridge> > Enable map compatibility mode using the specified bug (example: grenade-doubleexplosion@ddnet.tw) 08:34 < bridge> idk, but i remember there is a command called `mapbug` 08:34 < bridge> > Enable map compatibility mode using the specified bug (example: grenade-doubleexplosion@ddnet.tw) 08:34 < bridge> ah yea that exsplanes it 08:34 < bridge> with the context it looks like it handles checking if a map has that enabled 08:36 < bridge> i think so 09:13 < bridge> i'm currently looking at the map editor's code and trying to figure out what `FillSelection()` does. 09:13 < bridge> anyone knows what are these variables for? 09:13 < bridge> ```cpp 09:13 < bridge> // layer_tiles.h 09:13 < bridge> class CLayerTiles : public CLayer 09:13 < bridge> { 09:13 < bridge> // ... 09:13 < bridge> int m_Tele; 09:13 < bridge> int m_Speedup; 09:13 < bridge> int m_Front; 09:13 < bridge> int m_Switch; 09:13 < bridge> int m_Tune; 09:13 < bridge> // ... 09:13 < bridge> } 09:13 < bridge> ``` 09:32 < bridge> Maybe they're bools or enums pretending to be ints 09:32 < bridge> You can find references in the context menu in before if you have cpp plugin 09:32 < bridge> @zerolacqua 09:33 < bridge> Or otherwise just search for m_Tele 09:42 < bridge> i think you're right—all the assignments are either 0 or 1. but the `<=` in `pLayer->m_Tele <= pBrushLayer->m_Tele` is really misleading. I initially thought it was some kind of counter variable. 09:42 < bridge> thank u 09:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343142464919306241/image.png?ex=67bc3266&is=67bae0e6&hm=934126b2e768c9494c536451e21ca26270ec08d0f7858d7efffe443877c6193d& 09:48 < bridge> mwuhuhuhu 09:54 < bridge> actually if you remove the second inaccurate line 09:54 < bridge> the first also inaccurate line makes less sense 09:54 < bridge> i was told we wouldnt be removing the copyright symbol ever so idk 09:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343145196942135316/image.png?ex=67bc34f1&is=67bae371&hm=a413a6c422fcf5aa6b78b2b0f529e8e171f05b9ce45bc8a6aeb8cd216128c4a3& 09:59 < bridge> "this" being liscence.txt has been heavily modified in ddnet and doesnt include source files 10:54 < bridge> whos teeworlds.net 10:57 < bridge> I think teeworlds.com is meant here xd 10:58 < bridge> I'm not even sure how legal it is to remove these :/ 11:13 < bridge> oh yeah teeworlds.net isnt even valid for teeworlds 11:14 < bridge> its unlikely anything will come of it because i thought teeworlds guy disapeared and his name forever will be in liscence.txt 11:14 < bridge> license.txt only restrictions modification of itself not source files 11:16 < bridge> The teeworlds guy wouldn’t sue us anyway. I’m wondering if it’s legal at all to remove that 11:16 < bridge> the license doesn't say you can't remove it 11:17 < bridge> chatgpt is a good lawyer you can ask it 11:17 < bridge> he didn't disappear 11:17 < bridge> He does show up again every once in a while 11:17 < bridge> he became slightly less opauqe 11:18 < bridge> he became less opauqe 11:18 < bridge> he became less opaque 11:18 < bridge> i did, chatgpt says its okay 11:18 < bridge> but ^ 11:18 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343165096934899814/image.png?ex=67bc4779&is=67baf5f9&hm=fc0ecf602878b975e931ea722530ccba7094976dbbfa26c88f74cb3d5029b7ea& 11:18 < bridge> but 11:18 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343165096934899814/image.png?ex=67bc4779&is=67baf5f9&hm=fc0ecf602878b975e931ea722530ccba7094976dbbfa26c88f74cb3d5029b7ea& 11:19 < bridge> See even chatgpt is being cautious 😄 11:20 < bridge> I think the second part about the missing file is ok to remove but it's unclear about the first part 11:21 < bridge> its a bit weird that its just tw guy 11:21 < bridge> even though its maintained by other people now 11:21 < bridge> we are still a teeworlds mod believe it or not 11:21 < bridge> well it shouldn't be in files that are not from the teeworlds source 11:21 < bridge> new files do not need the notice 11:22 < bridge> I think it's technically considered part of the license 11:22 < bridge> but new code can be under any license 11:22 < bridge> its not mentioned in the liscence 11:22 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343166162179063828/image.png?ex=67bc4877&is=67baf6f7&hm=86a28c8a7e047b47835bee5a3da95a042309e2214cce42dfce4cfd811876dad7& 11:23 < bridge> chatgpt dumb again lmao 11:23 < bridge> i do think removing the second line is following the line 2 of that license tho 11:23 < bridge> the second line is really silly 11:23 < bridge> the first line is slightly silly 11:23 < bridge> the second line is really silly (not even valid for tw) 11:24 < bridge> the second line is probably before git and they had tar releases for the source code from the trunk 11:24 < bridge> "this notice" refers to itself only and probably the other 2 restrictions 11:25 < bridge> the rest of the liscence has been modified in ddnet 11:25 < bridge> claude says it legally extends to the files themselves, the comment and license are part of the license 11:25 < bridge> We should contact all contributors of teeworlds and ddnet ever so we can re-license 11:25 < bridge> to what 11:25 < bridge> i think as-is is fine 11:25 < bridge> tw is big enough that someones not gonna run off and pretend its a new thing 11:25 < bridge> this isn't really about relicensing 11:26 < bridge> our license is exactly zlib license iirc 11:26 < bridge> also that 11:26 < bridge> it is 11:26 < bridge> is it? 11:26 < bridge> https://www.zlib.net/zlib_license.html 11:26 < bridge> https://github.com/ddnet/ddnet/blob/master/license.txt 11:26 < bridge> it is zlib word for word, since zlib didn't named their license with a title so teeworlds didn't either 11:26 < bridge> Something funky, one of those half proprietary licenses so we can charge server hosters 11:26 < bridge> oh okay 11:26 < bridge> didnt know that 11:27 < bridge> 11:27 < bridge> Then I can finally move to the maldives 11:27 < bridge> *lack of understanding* 11:27 < bridge> half proprietary? 11:27 < bridge> Like the one epic games has for unreal engine 11:28 < bridge> It’s open source but if you use it you still have to pay 11:28 < bridge> thats a bit sketchy 11:28 < bridge> why do you need something like that for server hosters? 11:28 < bridge> I’m messing around, why so serious? 11:29 < bridge> honestly, if matricks shows up and says it's fine to remove it it'll be gold 11:29 < bridge> oop i didnt know u were joking x-x 11:29 < bridge> he could allow it 11:29 < bridge> The notices in the files are probably legally parts of the license, removing it is probably thus against the license in license.txt 11:29 < bridge> but they're only part of the teeworld license 11:30 < bridge> add cheat = violation into the license while we are at it 11:30 < bridge> Magnus Auvinen can give you whatever license to the source code that he likes 11:30 < bridge> i dont think they are, they are only in reference to it 11:30 < bridge> no they are 11:30 < bridge> Does he even own a copyright to all the modifications done over the years so he can grant us a license? 11:31 < bridge> no but the base is the part which is (should be) referenced by the header 11:31 < bridge> then does he own the right to protect his name being incorrectly used in a malicious software 11:31 < bridge> then does he own the right to protect his name from being incorrectly used in a malicious software 11:31 < bridge> not that we are malicious tho 11:31 < bridge> ddnet rm -rfed my home dir"" 11:31 < bridge> "ddnet rm -rfed my home dir" 11:31 < bridge> This is all very complicated. It’s probably why we never bothered to tidy it up over the last decade 11:32 < bridge> that i do agree 11:32 < bridge> this whole convo is basically the reason why it was left as-is. 11:32 < bridge> I think the only thing we settled was that new files with no teeworlds code don’t need the notice 11:33 < bridge> when you give code to a github repo, unless otherwise specified its probably under the assumption that it is atleast under the same liscence (which is hwy people are angry when you change the liscence), not having the header is "otherwise" even if only by a bit 11:34 < bridge> but i still believe if matricks give us a ok then we can just remove them. because i don't believe any contributor owns that part of the comment. 11:34 < bridge> anyone have his phone # 11:34 < bridge> look at it like this. The license header in all the files only applies to the code in that file which was written by the person who created the license, you can license parts of a file under different licences so if we carefully removed all the orignal teeworlds code lines then we could remove those headers or if the owner of the code that was in those files when the license was first there says its ok. 11:35 < bridge> @mtrcks show up again please 11:35 < bridge> nameplates.cpp was completley rewritten (i literally ctrl-a del'ed it twice) but that doesnt mean it isnt based of original teeworlds code 11:35 < bridge> you can remove it then 11:35 < bridge> nameplates.cpp was completley rewritten (i literally ctrl-a del'ed it twice) but that doesnt mean it isnt based of original teeworlds code, its just a tiny bit and i think thats enough to make the argument 11:35 < bridge> we can also remove it from any file we created after forking teeworlds 11:36 < bridge> why am i playing devils advocat i want to remove them x-x 11:36 < bridge> thats akin to changing liscence if the header constitutes part of the liscence 11:36 < bridge> We already shouldn’t have those 11:36 < bridge> i mean creating a file doesn't exactly means it wasn't teeworlds' code. is `math.c` and `math.cpp` the same file? 11:36 < bridge> cuz we've done that 11:37 < bridge> If it contains teeworlds code we probably kept the notice 11:37 < bridge> I don't think we are very careful about it, skins7.cpp and skins7.h have it 11:37 < bridge> but we did created a new file are "reworte" them in cpp :kekw: 11:37 < bridge> Hello. Tryin' to set up remote MariaDB server with SSL certificate installed (by domain) 11:37 < bridge> 11:37 < bridge> All i get: 11:37 < bridge> ``` 11:37 < bridge> 2025-02-23 10:31:45 I sql: failed connecting to db: (real_connect:mysql:3159): Connections using insecure transport are prohibited while --require_secure_transport=ON. 11:37 < bridge> 2025-02-23 10:31:45 I assert: /tw/sources/src/game/server/instagib/sql_stats.cpp(1005): CreateTableThread failed to write 11:37 < bridge> ``` 11:38 < bridge> 11:38 < bridge> What should I do? Does DDNet support MariaDB with SSL? 11:38 < bridge> "Connections using insecure transport are prohibited while --require_secure_transport=ON." 11:38 < bridge> Whoever made those files may have yoinked code from 0.7 directly 11:38 < bridge> yes, i see 11:38 < bridge> but I NEED SSL due to using remote MariaDB server. 11:38 < bridge> i think tater means we should not remove them since it was taken from 0.7 even tho it was created in ddnet 11:38 < bridge> apparently the server isnt secure 11:39 < bridge> it secute 11:39 < bridge> it secure 11:39 < bridge> try --require_secure_transport=OFF (im not susre where you put this) 11:39 < bridge> that's insecure 11:39 < bridge> but i need ssl between ddnet server and mariadb server 11:39 < bridge> the error is that it is, if it works when adding this, then the problem is its not using ssl for some reason 11:39 < bridge> it depends, I'm not really convinced that the file needs it. copywrite only applies to the code itself not the functionality of the code 11:39 < bridge> i know what error means 11:39 < bridge> my answer is what can I do 11:40 < bridge> it depends, I'm not really convinced that the file needs it. copywrite only applies to the written code itself not the functionality of the code 11:40 < bridge> let me check our transport code, one sec 11:40 < bridge> disable SSL is **not** an option 11:40 < bridge> We probably do not support SSL with mysql 11:40 < bridge> uh oh 11:40 < bridge> ye i think we just didn't 11:41 < bridge> so how ddnet works with remote db? 11:41 < bridge> it doesn't 11:41 < bridge> but how? replications? 11:42 < bridge> only admin knows. so @learath2 enlight us 11:43 < bridge> i think if ddnet doesn't support ssl for db I should now work with WireGuard on something… 11:43 < bridge> that's what kog did 11:43 < bridge> nyeh… 11:43 < bridge> wait am i even supposed to know that 11:43 < bridge> I don’t really remember how its set up tbh, perhaps there is a way to coerce it to use ssl 11:43 < bridge> wtf, my game just crashes after joining a server 11:44 < bridge> sometimes it just happens 11:44 < bridge> should i submit an idea somewhere? 11:45 < bridge> report it? 11:45 < bridge> I guess you could create an issue, maybe someone else remembers. I’ll check after food 11:46 < bridge> okay thank you 11:47 < bridge> btw what's your config for the server. (without leaking credentials ofc) 11:48 < bridge> ``` 11:48 < bridge> sv_use_sql 1 11:48 < bridge> add_sqlserver r "ddnet-insta" record "ddnet-insta" "" "db.teefusion.net" "3306" 1 11:48 < bridge> add_sqlserver w "ddnet-insta" record "ddnet-insta" "" "db.teefusion.net" "3306" 1 11:48 < bridge> ``` 11:48 < bridge> domain is properly set up 11:48 < bridge> IP doesn't work too 11:49 < bridge> out other mode 0xf doesn't work too with same errors 11:49 < bridge> our other mode 0xf doesn't work too with same errors 11:54 < bridge> it looks like there is no way to somehow enable TLS without directly enabling it. it needs to trust a cret too if i'm reading the doc correctly so we need to pass that as well as enabling the `mysql_options` 11:54 < bridge> it looks like there is no way to somehow enable TLS without directly enabling it in code. it needs to trust a cret too if i'm reading the doc correctly so we need to pass that as well as enabling the `mysql_options` 11:54 < bridge> why is the heart icon `MAYBE_UNUSED static const char *FONT_ICON_HEART = "\xEF\x80\x84";` that? 11:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343174118471897138/image.png?ex=67bc4fe0&is=67bafe60&hm=1734dba52810301f027de4b996d0ebc7ffad0935d2c766e8cfb595e9f06f860a& 11:54 < bridge> (private use apparently) 11:54 < bridge> font-awesome 11:55 < bridge> why not use one of the many hearts 11:55 < bridge> the FONT_ICON is specifically font-awesome 11:55 < bridge> you can just use regular heart if you want in your code 11:55 < bridge> right okay 11:55 < bridge> maybe for the look consistency tho 11:56 < bridge> if you change the normal font it will break consistency if everywhere else uses font awesome icon 11:56 < bridge> although i think font-awesome icons can only be used one way with a button iirc 11:57 < bridge> i don't think we do font fallback to fontawesome, the font has to be manually set while drawing the text i think 11:57 < bridge> so I gonna write issue 11:57 < bridge> yes please do 11:58 < bridge> why am i even here again? 11:58 < bridge> i was playing video game moments ago 11:58 < bridge> thank ya all 11:58 < bridge> 11:58 < bridge> gonna set it now with WireGuard 12:00 < bridge> the game just segfaults 12:00 < bridge> the steam version segfaults and the version compiled by me also segfaults 12:00 < bridge> run it using `gdb` 12:02 < bridge> `Thread 43 "DDNet" received signal SIGSEGV, Segmentation fault.` 12:03 < bridge> do i need to compile it in some specific way to get more information? 12:03 < bridge> type `bt` 12:03 < bridge> i should actually also update my system 12:03 < bridge> you better use `-DCMAKE_BUILD_TYPE=Debug` cmake flag to get better info 12:04 < bridge> it should be the default tho 12:05 < bridge> okay 12:05 < bridge> actually there might be something wrong with my system 12:11 < bridge> ive been messing with quad contaienrs for ages trying to get it to not break for unknown reasons 12:11 < bridge> when i could just draw the rect myself, theres no reason for me to upload it 12:14 < bridge> ah, it already here 12:14 < bridge> ah, it's already here 12:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343183844886577234/image.png?ex=67bc58ef&is=67bb076f&hm=a45ea67303dd112b1a632a4f6f7683068f735f31bfdc589c3122fb7cc6b42021& 12:33 < bridge> beutiful 12:33 < bridge> except its not centered 12:33 < bridge> ):< 12:33 < bridge> tetris 12:36 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343184630651814041/image.png?ex=67bc59ab&is=67bb082b&hm=7ea7d838ed767188ce82891a579162aef1f0f59caad20b8f609656b1f02fab3b& 12:36 < bridge> thanks Ryomou Hentai Girl for your work 12:38 < bridge> for the "doesnt change physics" it would be cool if the ci could perform a tas 12:38 < bridge> or like that car racing game you can "check" demos to see if they make sense 12:38 < bridge> for the "doesnt change physics" it would be cool if the ci could perform a tas 12:38 < bridge> or like that trackmania you can "check" demos to see if they make sense 12:38 < bridge> for the "doesnt change physics" it would be cool if the ci could perform a tas 12:38 < bridge> or like trackmania you can "check" demos to see if they make sense 12:41 < bridge> wow, rc5 12:41 < furo> CI already checks some parts of the physics with `integration_test.sh`. It's not fully covering, but some basic checks at least. 12:51 < bridge> Why do I get "out of memory"? Can someone please advise? 12:51 < bridge> 12:51 < bridge> ```cpp 12:51 < bridge> bool CSqliteConnection::AddDeaths(const char *pPlayer, int Deaths, char *pError, int ErrorSize) 12:51 < bridge> { 12:51 < bridge> char aBuf[512]; 12:51 < bridge> str_format(aBuf, sizeof(aBuf), 12:51 < bridge> "INSERT INTO %s_stats(Name, Deaths) " 12:51 < bridge> "VALUES (?, ?) " 12:51 < bridge> "ON CONFLICT(Name) DO UPDATE SET Deaths=Deaths+?", 12:51 < bridge> GetPrefix()); 12:51 < bridge> 12:51 < bridge> if (PrepareStatement(aBuf, pError, ErrorSize)) 12:51 < bridge> { 12:51 < bridge> dbg_msg("system", "%s", pError); 12:51 < bridge> return false; 12:51 < bridge> } 12:51 < bridge> 12:52 < bridge> BindString(1, pPlayer); 12:52 < bridge> BindInt(2, Deaths); 12:52 < bridge> BindInt(3, Deaths); 12:52 < bridge> bool End; 12:52 < bridge> return Step(&End, pError, ErrorSize); 12:52 < bridge> } 12:52 < bridge> ``` 12:52 < bridge> who administrates the tw discord ? 12:53 < bridge> there's a nsfw discord post in there 12:54 < bridge> You can ping Dune or heinrich for that 12:56 < bridge> does preparestatement need to be freed? 12:57 < bridge> out of memory is probably due to accidently having a huge query or memory leak 12:57 < bridge> use valgrind for the latter 12:58 < bridge> I don't know. This is my first time working with databases on ddnet, I just changed the points for deaths and create new table, but I got an error 12:58 < furo> @filoqcus if `PrepareStatement` is true. The function should return true instead of false. You seem to have copied the `AddPoints` function, but changed that for some reason. 12:58 < bridge> i dont know anything about this, but try valgrind to see if u have a memory leak 13:03 < bridge> Yes. Perhaps this is because I wanted to solve this using chatgpt. Overall I'm not surprised) 13:04 < bridge> But the error remained. 13:04 < bridge> 2025-02-23 14:01:55 I system: out of memory 13:09 < furo> Something wrong with your sqlite database, I guess. Try removing it or try searching for "sqlite out of memory error" 13:16 < bridge> I deleted it, started the server, it was created, but the error did not go away. Maybe there's a problem with the creation? 13:16 < bridge> 13:16 < bridge> ```cpp 13:16 < bridge> void IDbConnection::FormatCreateStats(char *aBuf, unsigned int BufferSize) const 13:16 < bridge> { 13:16 < bridge> str_format(aBuf, BufferSize, 13:16 < bridge> "CREATE TABLE IF NOT EXISTS %s_stats (" 13:16 < bridge> " Name VARCHAR(%d) COLLATE %s NOT NULL, " 13:16 < bridge> " Kills INT DEFAULT 0, " 13:16 < bridge> " Deaths INT DEFAULT 0, " 13:16 < bridge> " PRIMARY KEY (Name)" 13:16 < bridge> ")", 13:16 < bridge> GetPrefix(), MAX_NAME_LENGTH_SQL, BinaryCollate()); 13:16 < bridge> } 13:16 < bridge> ``` 13:21 < bridge> Could the problem be where I'm using this function? Although the error occurs inside the function itself 13:35 < furo> Yes, it would kinda matter. It should be done like it's done in other parts of the code. I made something similar a few weeks ago which is pretty much identical to what you are trying to do. See the `SaveStats` function, https://github.com/furo321/ddnet-bombtag/commit/8e909528a40fa2473ceecbc9192d15236c6bcfcc 13:41 < bridge> Why did I go into these databases... Everything is so complicated. But thanks, I'll try to do something the same 13:41 < bridge> :justatest: 13:44 < bridge> Furo, in general, I just wanted to add some lines of code to the Die() function to add Deaths, but you did a lot more) 13:44 < bridge> 13:44 < bridge> ```cpp 13:44 < bridge> if (m_pPlayer && GameServer()->m_pConnection) 13:44 < bridge> { 13:44 < bridge> dbg_msg("system", "I ADD STATS"); 13:44 < bridge> if (char Error[512]; !GameServer()->m_pConnection->AddDeaths(Server()->ClientName(m_pPlayer->GetCid()), 1, Error, sizeof(Error))) 13:44 < bridge> { 13:45 < bridge> dbg_msg("system", "Error adding deaths: %s", Error); 13:45 < bridge> } 13:45 < bridge> } 13:45 < bridge> else 13:45 < bridge> { 13:45 < bridge> dbg_msg("system", "I DON`T ADD STATS"); 13:45 < bridge> } 13:45 < bridge> ``` 13:46 < bridge> <_qey> Here we go again. My servers’ maps and mods are being copied, lol. Is there anything I can do about it? I don’t have a problem with them modifying it, I have a problem with them claiming they made it. 13:47 < bridge> <_qey> And I have a suspicion that those exact people are DDoSing my servers. 13:52 < furo> @filoqcus `IGameServer` doesn't have a `m_pConnection` variable. If you do it like this, you will be calling the SQL in the same thread as the server. Which means you will be effectively halting your entire server waiting for the SQL response. 13:52 < bridge> I add it 13:53 < bridge> std::unique_ptr m_pConnection; 13:53 < bridge> ```cpp 13:53 < bridge> std::unique_ptr m_pConnection; 13:53 < bridge> ``` 13:54 < bridge> Understood. So I made a stupid mistake? 13:54 < bridge> :nouis: 13:54 < furo> It won't be properly initialized if you do that. Please see how it's done in other parts of the code or the commit I linked earlier. 13:56 < bridge> <_qey> @0xdeen or somebody from the upper echelon, please, take a look and advise. 13:57 < bridge> <_qey> It’s the second time I’m being copied. 14:02 < bridge> not much you can do - you can't keep maps private and people copying your mod code is just something that can happen 14:03 < bridge> <0xdeen> I don't know what server you have, can you send the name and ips of your and the fake server? Also, try talking to the owner of the other server first 14:04 < bridge> @ryozuki i did register spilling 14:05 < bridge> <_qey> Yes, that’s what I’m trying to do at this moment. My servers are currently down, they are being DDoSed if it matters. Do I send it to you privately or just send it here? 14:37 < bridge> Don't fix the error just remove the check 15:00 < bridge> @filoqcus: what are you working on? Looks like you could save some time if you would use ddnet-insta. It already saves kills and deaths in the database out of the box. 15:01 < bridge> <0xdeen> your choice 15:02 < bridge> I would like to do something of my own. I've almost done as furo told me, there's still a little bit left. If something doesn’t work out for me, I’ll leave my idea (possibly) 15:02 < bridge> :kek: 15:03 < bridge> If you spend less time on solved problems you have more to build cool new ideas 15:06 < bridge> <_qey> We may have come up with a solution with the owners, they agreed to put up my credentials. Sorry to bother so preemptively, it’s just that it happens the more often. 15:07 < bridge> <_qey> However, there is still a suspicion about them conducting DDoS-attacks on my servers for my player base to move to their servers. Many IPs come from the same region as their servers, however, service providers differ. If I somehow get the evidence that is really them, should I forward it to you? 15:08 < bridge> Which servers do you host gaypidor? 15:09 < bridge> You should forward it directly to the police. It's a crime, nothing much we can do. 15:09 < bridge> 15:09 < bridge> I guess if you can beyond the shadow of doubt show that the people who host a server are ddosing yours we can masterban them, we've done it in the past 15:15 < bridge> nice 15:29 < bridge> FURO ITS WORK! THANK YOUUUU!!!!!!!!!!!!!! 15:30 < bridge> int siski = m_pPlayer->GetCID(); 15:30 < bridge> GameServer()->m_apPlayers[siski]->SetTeam(TEAM_SPECTATORS); 15:30 < bridge> at void CCharacter::DieSpikes(int pPlayerID, int spikes_flag) { 15:30 < bridge> 15:30 < bridge> my game crashing when this method is called(its fng sources) 15:30 < bridge> 15:30 < bridge> my actions: i shooting to dummy and put he to spikes and server crashing 15:30 < bridge> visual studio in debug mode build points to GameServer() 15:30 < bridge> maybe who knows how to fix this 15:30 < bridge> int victiim = m_pPlayer->GetCID(); 15:30 < bridge> GameServer()->m_apPlayers[victiim]->SetTeam(TEAM_SPECTATORS); 15:30 < bridge> at void CCharacter::DieSpikes(int pPlayerID, int spikes_flag) { 15:30 < bridge> 15:30 < bridge> my game crashing when this method is called(its fng sources) 15:30 < bridge> 15:30 < bridge> my actions: i shooting to dummy and put he to spikes and server crashing 15:30 < bridge> visual studio in debug mode build points to GameServer() 15:31 < bridge> maybe who knows how to fix this 15:31 < bridge> .```cpp 15:31 < bridge> ``` 15:31 < bridge> .```cpp 15:31 < bridge> .``` 15:31 < bridge> ```cpp 15:31 < bridge> int victiim = m_pPlayer->GetCID(); 15:31 < bridge> GameServer()->m_apPlayers[victiim]->SetTeam(TEAM_SPECTATORS); 15:31 < bridge> at void CCharacter::DieSpikes(int pPlayerID, int spikes_flag) { 15:31 < bridge> ``` 15:31 < bridge> ```cpp 15:31 < bridge> int victiim = m_pPlayer->GetCID(); 15:31 < bridge> GameServer()->m_apPlayers[victiim]->SetTeam(TEAM_SPECTATORS); 15:31 < bridge> 15:31 < bridge> at 15:31 < bridge> 15:31 < bridge> void CCharacter::DieSpikes(int pPlayerID, int spikes_flag) { 15:31 < bridge> ``` 15:32 < bridge> i tried replace [victiim] here to killer, and it works 15:35 < furo> @filoqcus Nice to hear! :) 15:38 < bridge> I asked melon, Kisao, TheNofis, Mʎɹ, and only you were able and agreed to help me. Melon wanted to help me, but he doesn't have time 15:39 < bridge> :owo: 16:34 < bridge> @everyone steam gift 50$ - [steamcommunity.com/gift-card/pay/50](https://is.gd/xZ5UQI ) 17:09 < bridge> can I ask about this spectate cursor thing? 17:09 < bridge> Am I actually able to see other players' cursors or is it just client side approximation? What about cl_mouse_max_distance ? 17:10 < bridge> That's so silly 17:11 < bridge> If it's left to right no brackets required 17:40 < bridge> Ok maffs genius solly 19:41 < bridge> Patiga! 19:43 < bridge> I'm in bed and about to go to sleep but I really wanna ask if you can build the wasm-pack for map-inspect in twgpu master cuz I keep getting a "env" import that doesn't exist in the packaged js. 19:43 < bridge> TickSkips (remember the +1) are definite ends of ticks. 19:43 < bridge> There are 3 types of chunks that can trigger "implicit" ticks. 19:43 < bridge> Those are PlayerDiff, PlayerNew and PlayerOld. 19:43 < bridge> The (lets call it) `implicit_pid` starts at `None`, and must be set to `Some(pid)` if you hit one of those chunks. If there was already a value an it is higher, advance one tick. 19:43 < bridge> However, set `implicit_pid` to `None`, whenever you hit a TickSkip. 19:44 < bridge> Perfect, this is exactly how I ended up implementing it 19:44 < bridge> (source: I spend the last few months juggling teehistorians) 19:44 < bridge> nice :) 19:44 < bridge> Googled a bit they says it is some external dependency that can't be resolved. I converted the wasm to wat and it was importing some inflate deflate 19:44 < bridge> Annnd, Imma sleep 19:45 < bridge> good night! 19:45 < bridge> TickSkips (remember the +1) are definite ends of ticks. 19:45 < bridge> There are 3 types of chunks that can trigger "implicit" ticks. 19:46 < bridge> Those are PlayerDiff, PlayerNew and PlayerOld. 19:46 < bridge> The (lets call it) `implicit_pid` starts at `None`, and must be set to `Some(pid)` if you hit one of those chunks. If there was already a value an it is equal or higher, advance one tick. 19:46 < bridge> However, set `implicit_pid` to `None`, whenever you hit a TickSkip. 19:46 < bridge> did a small correction: higher -> equal or higher, but you prob did that 20:14 < bridge> anyone know how to change the map in a demo? or any library for this sorta stuff? 20:32 < bridge> probably not an easy task but i believe you can accomplish it with libtw2_demo (written in rust btw) 20:35 < bridge> oh okay cool 20:35 < bridge> the docs should be enough im just gonna do it in python xd 20:38 < bridge> @louis.place here you go :) 20:38 < bridge> epic :poggers2: 20:39 < bridge> oh nice xd 20:39 < bridge> patiga the goat 20:47 < bridge> someone know how fix this 21:05 < bridge> help pls 21:05 < bridge> 😔 21:06 < bridge> https://dontasktoask.com/ 21:06 < bridge> he asked though 21:08 < bridge> @blaiszephyr @robyt3 @jupeyy_keks 21:08 < bridge> time for some politics ????? 21:08 < bridge> aw hell nah 21:08 < bridge> im tilted already 21:08 < bridge> Hahahaha 21:08 < bridge> Same 21:11 < bridge> int victiim = m_pPlayer->GetCID(); 21:11 < bridge> GameServer()->m_apPlayers[victiim]->SetTeam(TEAM_SPECTATORS); 21:11 < bridge> at void CCharacter::DieSpikes(int pPlayerID, int spikes_flag) { 21:11 < bridge> 21:11 < bridge> my game crashing when this method is called(its fng sources) 21:11 < bridge> 21:11 < bridge> my actions: i shooting to dummy and put he to spikes and server crashing 21:11 < bridge> visual studio in debug mode build points to GameServer() 21:11 < bridge> Exception thrown: Read access violation. 21:11 < bridge> **this** was nullptr. 21:11 < bridge> 21:11 < bridge> maybe who knows how to fix this 21:12 < bridge> oh wtf that message did not load for me 21:13 < bridge> can u send the entire function 21:14 < bridge> ur trying to access smth that doesnt exist so make sure you arent deleting or already changing state of the player before u set their team 21:14 < bridge> stuff like that 21:14 < bridge> bla bli blub blub blub bla 21:14 < bridge> 21:14 < bridge> i probably said more than most politicans ever did 21:22 < bridge> did the nazi party win or nah 21:24 < bridge> afd leads? 21:24 < bridge> wtf 21:24 < bridge> political: tune lock for 19.1 21:25 < bridge> there 2nd after cdu 21:25 < bridge> they're 2nd after cdu 21:26 < bridge> phew 21:30 < bridge> wdym phew, its horrible 21:31 < bridge> is olaf sholtz so bad they vote for anything but not for spd 21:31 < bridge> pretty much - tho ofc they only just started counting 21:33 < bridge> it will be interesting 21:33 < bridge> neverthelews 21:47 < bridge> Uhmm off topic mayhaps 21:48 < bridge> There's a good video showing the AFD being stuck up hard right idiots who don't deserve any power 21:48 < bridge> https://www.reddit.com/r/polandball/comments/1iwfxqb/german_election_2025/ 21:49 < bridge> https://youtu.be/8eIm8lUsdUY?si=nV0WLn8UlWT3XlPn 21:50 < bridge> Main video topic is not a very important topic but shows AFD to just be scared of progressive things 21:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343324125875404914/123.txt?ex=67bcdb95&is=67bb8a15&hm=c1afb08d466ef3a890dd05c99ddea62431b9fdcc66eba3724c16b1971795d38d& 21:51 < bridge> nice siski bro 21:52 < bridge> oh ahahahahha, siski its boobs in russian 21:52 < bridge> i know druzhe 21:58 < bridge> just my codestyle its shit, in often I just hit the keyboard for the names ahahah 21:58 < bridge> just my codestyle its shit, often I just hit the keyboard for the names ahahah 22:03 < bridge> Rip 23:10 < bridge> @heinrich5991 23:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1343344145426808852/image.png?ex=67bcee3a&is=67bb9cba&hm=c9f9356ab9afad8779221a5da8c953fd6df4e5309d9f9d3fa03f060ce575e298& 23:13 < bridge> @fokkonaut: pinging Heinrich doesn’t work anymore 23:13 < bridge> What’s the image about? Is that fddrace? 23:14 < bridge> I had a few woopsies in ddnet-insta that got turned into fatal errors once 128 landed o.0 23:15 < bridge> Are you sending valid skin info for this client? Also, I though the placeholder skin, which you are seeing there, should be rendered with a correct offset now. Or is that the 0.7 placeholder? 23:15 < bridge> Are you sending valid skin info for this client? Also, I thought the placeholder skin, which you are seeing there, should be rendered with a correct offset now. Or is that the 0.7 placeholder? 23:21 < bridge> no idea right now 23:21 < bridge> I just quickly tried to adapt my mod to allow 128p clients correctly 23:21 < bridge> havent investigated further right now, i thought it would be easier to get this done quickly 23:59 < bridge> where are the ghost stored?