Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2025-02-24 00:00 and 2025-02-25 00:00
Avatar
cyberfighter 2 2025-02-24 00:17
Avatar
Avatar
fokkonaut
@heinrich5991
@Robyt3 I see now, i think. it's the approach where the last player id is used as an empty slot. Maybe you have added a check which doesnt allow rendering if the player object is missing (or smiliar). something like that is being done for that last id, in the player id map
00:30
no idea what is happening here. i have extended my algorithm to work on 128p client now, and this is the result on the client :D
Avatar
Avatar
cyberfighter 2
Click to see attachment 🖼️
Wooow
Avatar
GitHub BOT 2025-02-24 02:57
fix #9531 I'm pretty sure there are some cases missing here, and this fix is effective. but I'm not sure if using else to handle them is appropriate. before: Screencast from 2025-02-24 10-44-18.webm after: Screencast from 2025-02-24 10-44-47.webm

Checklist

  • [x] Tested the change ingame
  • [x] Provided...
Avatar
i think my github broke
🤣 2
Avatar
Avatar
Hecta
i think my github broke
it does that sometimes
03:23
try viewing any pr's with changes across 10-20 files and your browser will struggle :)
Avatar
Avatar
cyberfighter 2
Click to see attachment 🖼️
Can we get less pixels please
Avatar
Avatar
Sans
try viewing any pr's with changes across 10-20 files and your browser will struggle :)
But vscode can do it
08:43
So idk how GitHub struggles so
08:44
On l440 it just freezes the page forever and doesn't let me close it (unless I drag it into a new window and alt F4) or go back or forwards
08:44
But it queued all my actions sk
08:45
Very much good
Avatar
Avatar
nankudo
int victiim = m_pPlayer->GetCID(); GameServer()->m_apPlayers[victiim]->SetTeam(TEAM_SPECTATORS); at void CCharacter::DieSpikes(int pPlayerID, int spikes_flag) { (edited)
I havent fixed this yet
09:02
maybe who knows fix? nouis
Avatar
Avatar
nankudo
int victiim = m_pPlayer->GetCID(); GameServer()->m_apPlayers[victiim]->SetTeam(TEAM_SPECTATORS); at void CCharacter::DieSpikes(int pPlayerID, int spikes_flag) { (edited)
That's weird, I assume you are using asan Asan would catch victim being -1 or otherwise oob, so I don't know how it gets past that I assume the "this" is players[victim] anyway, try printing victim out with printf
09:18
Or using debugger to find the value at crash
09:18
Or using debugger
Avatar
Can I get ClientId from pSelf?
11:10
nouis
Avatar
@-Cosgerms pSelf is not a specific class. You will have to tell us which class it is in.
💝 1
Avatar
chillerdragon BOT 2025-02-24 11:24
But often you can’t. It’s mostly inside pResult->m_ClientId pSelf usually refers to CServer or CGameContext
💝 1
Avatar
In mathematical logic, the de Bruijn index is a tool invented by the Dutch mathematician Nicolaas Govert de Bruijn for representing terms of lambda calculus without naming the bound variables. Terms written using these indices are invariant with respect to α-conversion, so the check for α-equivalence is the same as that for syntactic equality. E...
Avatar
@MilkeeyCat i made a vscode grammar
Avatar
MilkeeyCat 2025-02-24 14:23
for your lang?
Avatar
Avatar
furo
@-Cosgerms pSelf is not a specific class. You will have to tell us which class it is in.
what is the difference between m_pPool->Execute and ExecPlayerThread
Avatar
GitHub BOT 2025-02-24 16:17
Please share some ideas of how the editor worked.
Avatar
GitHub BOT 2025-02-24 17:09
09eb4e6 add new speedup tile - mwinkens 2b3faab Merge pull request #9670 from AssassinTee/feature/speedtiles2 - def-
Avatar
Avatar
GitHub
Click to see attachment 🖼️
Jupstar ✪ 2025-02-24 17:35
@Assa are these with clamped valramp?
17:36
or not clamped, but maxed
Avatar
Avatar
MilkeeyCat
for your lang?
y
Avatar
Avatar
Ryozuki
y
MilkeeyCat 2025-02-24 18:14
when make one using treesitter?
Avatar
Avatar
Jupstar ✪
@Assa are these with clamped valramp?
not clamped. I think the valramp issue is out of scope for this
18:25
you still obtain a higher speed value internally in the game, if you get slowed down, you will be visually faster
18:25
I don't believe that this is stricktly an issue of speedtiles
Avatar
Avatar
MilkeeyCat
when make one using treesitter?
soon
Avatar
Avatar
Assa
you still obtain a higher speed value internally in the game, if you get slowed down, you will be visually faster
Jupstar ✪ 2025-02-24 18:33
yeah that's why i meant not clamp, but simply not add more speed at a maximum
18:33
as we discussed
18:33
i think that would have improved speed tiles more than only fixing a single issue
Avatar
you can already create speedtiles with max_speed, which was the issue?
18:34
this does exactly what you describe, stop adding speed if you hit max_speed
Avatar
Avatar
Assa
you can already create speedtiles with max_speed, which was the issue?
Jupstar ✪ 2025-02-24 18:34
yeah but max_speed is much lower isnt it
Avatar
it's limited to a fiths
18:34
I don't know why, there I just kept the value similar to the original one
Avatar
Jupstar ✪ 2025-02-24 18:35
yeah but as said if you map with speedtiles and dont apply max speed it should not glitch out like it does imo
Avatar
Received message: Do you know someone who uses a bot? Please report them to the moderators. from undefined with a client id of 2
18:36
why does that message have a client id of 2
18:36
and the rest dont Received message: DDraceNetwork Mod. Version: 0.6.4, 19.1 from undefined with a client id of -1 Received message: please visit DDNet.org or say /info and make sure to read our /rules from undefined with a client id of -1 Received message: Do you know someone who uses a bot? Please report them to the moderators. from undefined with a client id of 2 Received message: Welcome to DDraceNetwork! from undefined with a client id of -1 Received message: Please join a team before you start from undefined with a client id of -1
Avatar
Avatar
Jupstar ✪
yeah but as said if you map with speedtiles and dont apply max speed it should not glitch out like it does imo
I am also working on yet another "speedtile" variant where no speed is added but max_speed is set. you could put it right behind a speedtile, but I guess this wouldn't solve the issue in your opinion. Every "solution" for this just feels like a patch for ramp values (edited)
Avatar
Avatar
always
why does that message have a client id of 2
iirc there was a bug that the server sometimes sent the message as a player
18:38
e.g chat: meloƞ: Do you know someone who uses a bot? Please report them to the moderators.
18:38
without me saying anything
Avatar
is it fixed?
Avatar
@Assa do you think these look good?
19:00
will send u the images if you like them
Avatar
Is there an open API for the data used at https://ddnet.org/ ?
19:07
e.g. Player-Data JSON for Player X (edited)
Avatar
Avatar
APFFF
Is there an open API for the data used at https://ddnet.org/ ?
Avatar
Nvm, think i found it
Avatar
:>
Avatar
I need help with git, any wizards around? idk how to squash some commits on a pr
Avatar
Avatar
Sans
I need help with git, any wizards around? idk how to squash some commits on a pr
Learn what Git squashing is, talk about when we need to squash commits, and take a closer look at how to squash commits
owo 1
19:22
oh
19:22
he did it already
19:23
gg
Avatar
ws-client BOT 2025-02-24 19:28
<ChillerDragon> @avolicious?
Avatar
Avatar
Sans
I need help with git, any wizards around? idk how to squash some commits on a pr
git rebase -i is my personal favorite method, give it the base branch or commit & it'll give you a text input where each line has a command & commit hash, that command influences what happens to that commit & as soon as you exit git will try to put those changes into effect
19:32
there's a description in the text buffer it opens for you
19:32
it's intuitive
Avatar
slight issue, i've synced the branch i was working on with master, and now there's a ton of commits between my own ones
19:33
heh i shouldnt have done that probably
Avatar
Avatar
Ewan
git rebase -i is my personal favorite method, give it the base branch or commit & it'll give you a text input where each line has a command & commit hash, that command influences what happens to that commit & as soon as you exit git will try to put those changes into effect
you can re-rebase
19:33
you can choose to squash only those commits too
Avatar
Avatar
Ewan
you can re-rebase
noop
19:35
cool, git hates me now
19:35
i am that bad with it (edited)
Avatar
git hard
19:35
if you knew what the base was before you did the original rebase it's just a matter of using that instead
Avatar
i cant tell if that's a joke or an actual command you're telling me to run
Avatar
as long as the history hasn't been deleted
19:35
im not joking
19:35
oh wait
19:36
git hard isn't a command it's just a grammatically simplified way of saying i think git is difficult
Avatar
in that case, amen brother
Avatar
GitHub BOT 2025-02-24 19:39
70f38a7 fix(editor): FillSelection() fills with empty (index is 0) without resetting other tile properties when 'allow unused' is enabled - ZerolAcqua 54d27c9 Merge pull request #9754 from ZerolAcqua/allow-unused - Robyt3
Avatar
I think i messed up :( @Robyt3
Avatar
git rebase is scary and i dont know how it works, but you can fully replace it with git reset --soft (and for squashing commits its not much different) (edited)
Avatar
Avatar
Sans
I think i messed up :( @Robyt3
howd u mess up
20:12
just uhh... take a look
Avatar
Jupstar ✪ 2025-02-24 20:12
git fetch --all git rebase upstream/master
👍 1
Avatar
did you force push with added changes?
Avatar
Avatar
Solly
did you force push with added changes?
I force pushed after rebasing, any change i've made was already commited and pushed
Avatar
Avatar
Jupstar ✪
git fetch --all git rebase upstream/master
do git reset --hard <the commit id with everything it in> then this
Avatar
wdym "everything in it"
Avatar
all the changes as singular commits before force push
Avatar
Find the commit before you messed up and reset to that
👍 1
20:15
git reflog to find previous commits, git log <id> to check if you found the correct one
Avatar
git is voodoo witchcraft
cryIgnore 1
Avatar
Avatar
Robyt3
git reflog to find previous commits, git log <id> to check if you found the correct one
idk which one is the correct one though (edited)
Avatar
It should be the last commit you made that fixed the RecreateTextContainer comment
20:16
Use git log <id> to check
Avatar
Avatar
Robyt3
It should be the last commit you made that fixed the RecreateTextContainer comment
it's not there
Avatar
It should all be in git reflog
Avatar
it isnt, here:
20:18
20:19
the only commit i see that's mine is the first one i've made (edited)
20:19
and something about it being a combination of multiple commits
Avatar
Scroll further down until you see a line with rebase (start)
20:20
The line below that should contain the commit before you started the rebase
Avatar
I think I got it, do i force push now or what?
Avatar
Did you check with git log that it's the correct commit?
20:22
Then make sure you are on the fps-improvements branch, then git reset --hard <commit>
Avatar
yeah, i did reset
Avatar
git fetch --all then git rebase -i upstream/master assuming you added DDNet as a remote upstream (edited)
20:27
First try rebase without squashing
20:28
You should only see your own commits in the rebase editor, otherwise abort by clearing all editor contents
Avatar
yup, only mine were there now
Avatar
Then git rebase -i upstream/master, mark all commits except the first one as squash/fixup and git push -f
Avatar
Avatar
Robyt3
Then git rebase -i upstream/master, mark all commits except the first one as squash/fixup and git push -f
Done
20:30
thanks owo
20:30
I am never touching git again
Avatar
Avatar
Hecta
@Assa do you think these look good?
@Assa ill just post them here anyways, just in case
Avatar
Avatar
Hecta
@Assa do you think these look good?
gorgeous 😁
Avatar
Avatar
Hecta
@Assa ill just post them here anyways, just in case
took me a while to understand that this is black on black xD thank you
21:18
ngl the array was kind of easy to do in inkscape
21:18
the hardest part was making sure it looked good in-game
Avatar
GitHub BOT 2025-02-24 21:29
join any ZenBlock server and whisper yourself. Due to 128p/256p translation, whispers look like this and are sent from the fake player id (id 63/127). !Image
21:30
Reported by @gerdoe-jr on Discord:
test map locally feature doesn't expect user to map in nested directories
Avatar
GitHub BOT 2025-02-24 21:57
Only apply client data of active clients to chat messages. Closes #9756.

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UB...
Avatar
what API are openly available apart from player-data, map-data, etc. ? Has anyone made an API for skins?
Avatar
What im looking for specifically (atm): 1. GET current player skin (I know it requires server monitoring but is someone doing this and provides an API?) 2. GET img-file for a skin 3. GET "rendered" img-file for a skin
Avatar
you can do all those things, that’s how the game does it
Avatar
Avatar
GitHub
Click to see attachment 🖼️
@Robyt3 can you test if this works on my server?
Avatar
I tested on ZenBlock servers
22:07
Client 127 is not active
Avatar
but it should be. that's the way it has been before too, with id 63. it's only halfly active
Avatar
current player skin works by skin name. any number of sites like teedata provide an API for getting their version of that skin
Avatar
It looks like this now with 9758 applied:
Avatar
Avatar
Ewan
you can do all those things, that’s how the game does it
I have never looked at that code. Do you know where i can find it?
Avatar
Not active enough apparently
Avatar
idk if anyone keeps track of peoples’ skins over time. are you trying to look up a skin by player name?
Avatar
Avatar
Robyt3
It looks like this now with 9758 applied:
Avatar
you need to get their skin name, either ingame or through the master json
Avatar
Avatar
Ewan
idk if anyone keeps track of peoples’ skins over time. are you trying to look up a skin by player name?
exactly
Avatar
the clientinfo is sent, but not the playerobject, i think
Avatar
Avatar
Ewan
idk if anyone keeps track of peoples’ skins over time. are you trying to look up a skin by player name?
Furo does on ddstats.tw
👍 1
Avatar
idk of any sites which keep track of skins for offline players and things
22:08
cool
22:08
nice
Avatar
Client.m_Active is false when CreateManagedTeeRenderInfo is called, you need to ensure that it's true instead
Avatar
does the official database https://ddnet.org/skins/ not have an API?
Avatar
not like that
22:09
that’s a glorified static image host
Avatar
For that you also need to send NETOBJTYPE_PLAYERINFO for that client
Avatar
but that wont work, it's the way ddnet created this initially @Robyt3
22:09
what has changed that it's required now
22:09
xd
22:09
sending the player object will make it appear in the list, etc.
Avatar
Avatar
fokkonaut
what has changed that it's required now
We try to avoid reading undefined data now
Avatar
thats why it's been done this way by whoever created 16p/64p translation back then
Avatar
Avatar
APFFF
does the official database https://ddnet.org/skins/ not have an API?
Ddstats is open source, you could just look how he does jt
👍 1
Avatar
Avatar
Robyt3
We try to avoid reading undefined data now
but... it's not undefined to use clientinfo object data if it's existing. just dont read into playerinfo object, if its not there
22:11
I mean. the message is shown. that's what's important i think
Avatar
Btw. I'm not using it for a Client but a serverless Webapp. Thats why Im asking for APIs specifically
Avatar
Avatar
fokkonaut
I mean. the message is shown. that's what's important i think
the default skin would be "wrong" anyways, because it's just the placeholder and not actual skin of the player of course. so no skin seems fine in general
22:15
i think at that point i'm just questioning whether we should make everything "safe", or if we still wanna allow stuff like not sending the player object. I think that also allowed me to do smooth flag hooking, because when a player hooks a flag, it will send the character object but not the player, in order to not render while predicting the hook
22:19
+ ddnet character
Avatar
Does anyone now how Skins are being assembled / where in the Code the assembly is done
Avatar
Avatar
APFFF
Does anyone now how Skins are being assembled / where in the Code the assembly is done
skins.cpp (0.6), skins7.cpp (0.7), render.cpp mostly
👍 1
Avatar
Avatar
Robyt3
skins.cpp (0.6), skins7.cpp (0.7), render.cpp mostly
thx
Avatar
Avatar
APFFF
Btw. I'm not using it for a Client but a serverless Webapp. Thats why Im asking for APIs specifically
it's equivalent in this case
22:34
your app is still the client to the API server regardless of whether you're playing the game/what language and platforms you're using
22:35
i think @Sans built something to render tee skins in the web already
👍 1
Avatar
GitHub BOT 2025-02-24 22:37
2bf93fc Fix incorrect chat messages for inactive clients - Robyt3 f1ce397 Merge pull request #9758 from Robyt3/Client-Chat-Inactive-Client-Fix - def-
Avatar
@Sans hmu if you have such a thing opensource or generally speaking the size and offset values to render skins from the png
Avatar
Avatar
Ewan
i think @Sans built something to render tee skins in the web already
node, there's teeassembler for web
Avatar
Avatar
APFFF
@Sans hmu if you have such a thing opensource or generally speaking the size and offset values to render skins from the png
you can take a look at the TeeSkin6 and TeeSkin7 classes from my lib
22:40
1s ill give u a link
Avatar
Avatar
Sans
1s ill give u a link
thx
tip 1
Exported 195 message(s)
Timezone: UTC+0