infjump
enabled by default for backward compatibility. However, it unfortunately breaks prediction for 18.7 - 18.9 clients if infjumps are disabled with invincible enabled - the sound and jump particles play but the player doesn't jump (no rubberbanding) I think it's fine as it doesn't affect gameplay and the feature is rarely used.
i
to a size_t
and chatgpt says to use static_cast<int>
on the for loop part, which doesn't seem clean at all
how do i do this properly? for context: what's being compared is a static const char s_apAutoMapReferenceButtonNames
array (edited)(i - 1) == s_AutoMapReferenceCurrent
is also present, which, again, would be comparing an int to a size_t if i changed iti
to a size_t
and chatgpt says to use static_cast<int>
on the for loop part, which doesn't seem clean at all
how do i do this properly? for context: what's being compared is a static const char s_apAutoMapReferenceButtonNames
array (edited)a
in notation, has to be an array theni
to a size_t
and chatgpt says to use static_cast<int>
on the for loop part, which doesn't seem clean at all
how do i do this properly? for context: what's being compared is a static const char s_apAutoMapReferenceButtonNames
array (edited)i
to a size_t
and chatgpt says to use static_cast<int>
on the for loop part, which doesn't seem clean at all
how do i do this properly? for context: what's being compared is a static const char s_apAutoMapReferenceButtonNames
array (edited) struct A {
a: i32,
b: i32,
}
impl A {
pub fn hello(&self, other: i32) -> i32 {
return self.a * other;
}
pub fn set_a(&mut self, value: i32) {
self.a = value;
return;
}
}
pub fn main() -> i32 {
let mut x: A = A {
a: 2,
b: 3,
};
x.set_a(4);
return x.a;
}
this compiles in the lang im making at work if(!Error)
{
*pDst = '\0';
pStr++;
for(Victim = 0; Victim < MAX_CLIENTS; Victim++)
{
if(Server()->ClientIngame(Victim) && str_comp(pName, Server()->ClientName(Victim)) == 0)
{
break;
}
}
}
if(!Error)
{
*pDst = '\0';
pStr++;
for(Victim = 0; Victim < MAX_CLIENTS; Victim++)
{
if(Server()->ClientIngame(Victim) && str_comp(pName, Server()->ClientName(Victim)) == 0)
{
break;
}
}
}
if(!Error)
{
*pDst = '\0';
pStr++;
for(Victim = 0; Victim < MAX_CLIENTS; Victim++)
{
if(Server()->ClientIngame(Victim) && str_comp(pName, Server()->ClientName(Victim)) == 0)
{
break;
}
}
}
if(!Error)
{
*pDst = '\0';
pStr++;
for(Victim = 0; Victim < MAX_CLIENTS; Victim++)
{
if(Server()->ClientIngame(Victim) && str_comp(pName, Server()->ClientName(Victim)) == 0)
{
break;
}
}
}
hey sorry but my NEW editor released in 2025 ships an AI LSP server, which tells me that THIS function should rather be a for loop
(edited)/**
* Gets a client from a string
*
* @param pStr The string to get the client from, will be moved to the end of the next word, will be modified
* @param ClientId The client id to be returned, -1 for no client found
* @param NameToClientId Takes a string and returns an optional client id if it is a valid client name
*
* @return If parsing succeeded
*/
template <typename NameToClientIdType>
static bool GetClientFromString(NameToClientIdType NameToClientId, char *&pStr, int &ClientId)
where do i put this theres no shared/chat and console does something else<tee picture> <name>: whisper content
when you type /whisper bun bun hello world
<tee picture> <name>: whisper content
when you type /whisper bun bun hello world
bind a say &rIM REALLY FUICKING PISSED
(edited)shell_execute
with user-defined input was possible without vulnerability, being able to immediately open links from the client already sounds like a recipe for trouble.ah_yes_look_at_my_big_word
(unicode probably has more ways to add spaces))shell_execute
with user-defined input was possible without vulnerability, being able to immediately open links from the client already sounds like a recipe for trouble. expression must have pointer-to-class type but it has type "__gnu_cxx::__normal_iterator<std::vector<CNamePlatePart *, std::allocator<CNamePlatePart *>>::pointer, std::vector<CNamePlatePart *, std::allocator<CNamePlatePart *>>>::pointer" (aka "CNamePlatePart **")C/C++(131)
std::vector<CNamePlatePart> m_aParts = {
CNamePlatePartName()
};
how am i allowed to do this if CNamePlatePart is inherited from the inherited objects have a bigger size?/home/solly/Games/ddnet/src/game/client/components/nameplates.cpp:382:10: error: no member named 'Init' in 'std::unique_ptr<CNamePlatePart>'
382 | Part->Init(This);
| ~~~~~~^
class CNamePlatePart
{
protected:
float m_Width = 0.0f;
float m_Height = 0.0f;
float m_Padding = 5.0f;
bool m_NewLine = false;
public:
virtual void Init(CGameClient &This) {};
expression must have class type but it has type "std::__shared_ptr<CNamePlatePart, __gnu_cxx::_S_atomic>::element_type *" (aka "CNamePlatePart *")C/C++(153)
expression must have class type but it has type "std::__shared_ptr<CNamePlatePart, __gnu_cxx::_S_atomic>::element_type *" (aka "CNamePlatePart *")C/C++(153)
(*Part).Init(This)
for(auto Part = m_aParts.begin(); Part != m_aParts.end(); ++Part)
Part->get().Init(This);
(edited)*(std::vector<theclass>::iterator*) = the class
for(auto Part = m_aParts.begin(); Part != m_aParts.end(); ++Part)
Part->get().Init(This);
(edited)(*Part)->Init(This)
is more idiomatic imo(*Part)->Init(This)
is more idiomatic imo m_vpParts
m_vpParts
m_vpParts
m_Visible = *(Member *)(&Data + offsetof(CNamePlateRenderData, Member));
'CNamePlatePart' is a private member of 'CNamePlatePart'
thats a bold statementinclude function here
&*&&*&**&*&*&**&*&**&**&**&*&
&*&&*&**&*&*&**&*&**&**&**&*&
template<typename _Tp, typename _Alloc, typename _Predicate>
_GLIBCXX20_CONSTEXPR
inline typename vector<_Tp, _Alloc>::size_type
erase_if(vector<_Tp, _Alloc>& __cont, _Predicate __pred)
{
using namespace __gnu_cxx;
_GLIBCXX_STD_C::vector<_Tp, _Alloc>& __ucont = __cont;
const auto __osz = __cont.size();
const auto __end = __ucont.end();
auto __removed = std::__remove_if(__ucont.begin(), __end,
__ops::__pred_iter(std::ref(__pred)));
if (__removed != __end)
{
__cont.erase(__niter_wrap(__cont.begin(), __removed),
__cont.end());
return __osz - __cont.size();
}
return 0;
}
This.Graphics()->QuadsBegin();
This.Graphics()->SetColor(1.0f, 0.0f, 0.0f, 1.0f);
This.Graphics()->DrawCircle(X, Y, 5, 10);
// This.Graphics()->TextureClear();
This.Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
This.Graphics()->QuadsEnd();
(edited)[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I host_lookup: host='localhost' port=0 3
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I net: failed to bind socket with domain 10 and type 1 (98 'Address already in use')
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I econ: couldn't open socket. port might already be in use
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: server name is 'shroobie'
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I censorlist: failed to open 'censorlist.txt'
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I sql: failed to open wordlist, using fallback
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: version 19.0 on linux amd64
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: git revision hash: 00bb74c498992122
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 E server: Failed load announcements from 'announcement.txt'
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: +-------------------------+
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: | rcon password: 'pTSqot' |
[2025-01-27T18:18:24Z INFO trashmap] 2025-01-27 18:18:24 I server: +-------------------------+
[2025-01-27T18:18:25Z ERROR trashmap] Error in handler: deadline has elapsed
which is weird (edited)econ: bound to 127.0.0.1
but doesn't see it in timebound to localhost:8303
?TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_NO_FIRST_CHARACTER_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_LAST_CHARACTER_ADVANCE);
what is this meant to do (in rendering directions in nameplate, i just left it in last time)
Wait how the frug does This.Graphics()->TextureSet(g_pData->m_aImages[m_ImageId].m_Id);
not assert fail (edited)Graphics()->TextureSet(g_pData->m_aImages[IMAGE_STRONGWEAK].m_Id);
Graphics()->QuadsBegin();
ehh???void CGraphics_Threaded::TextureSet(CTextureHandle TextureId)
{
dbg_assert(m_Drawing == 0, "called Graphics()->TextureSet within begin");
dbg_assert(!TextureId.IsValid() || m_vTextureIndices[TextureId.Id()] == -1, "Texture handle was not invalid, but also did not correlate to an existing texture.");
m_State.m_Texture = TextureId.Id();
}
void CGraphics_Threaded::QuadsBegin()
{
dbg_assert(m_Drawing == 0, "called Graphics()->QuadsBegin twice");
m_Drawing = DRAWING_QUADS;
QuadsSetSubset(0, 0, 1, 1);
QuadsSetRotation(0);
SetColor(1, 1, 1, 1);
}
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_NO_FIRST_CHARACTER_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_LAST_CHARACTER_ADVANCE);
what is this meant to do (in rendering directions in nameplate, i just left it in last time)
Wait how the frug does This.Graphics()->TextureSet(g_pData->m_aImages[m_ImageId].m_Id);
not assert fail (edited)void CGraphics_Threaded::TextureSet(CTextureHandle TextureId)
{
dbg_assert(m_Drawing == 0, "called Graphics()->TextureSet within begin");
dbg_assert(!TextureId.IsValid() || m_vTextureIndices[TextureId.Id()] == -1, "Texture handle was not invalid, but also did not correlate to an existing texture.");
m_State.m_Texture = TextureId.Id();
}
-pGlyph->m_OffsetX
to first char -Advance + BearingX + CharWidth
to last char (edited)TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT
a*1 + b*0 + c*0d + d*0
(edited)CServer::DistinctClientCount
function a check for the address being nullptr
was missing in the inner loop. Before #9591 this was comparing addresses from uninitialized memory instead. Duplicate checks of the client state are avoided by first fetching the addesses of all clients which are ingame.
Closes #9597.