return std::chrono::nanoseconds(1s).count() / 10;
under int64_t time_freq()
in base/system.cpp (edited)bc36a09
M Barren, M Behemoth, M Cerulean, M Exhale, M Flux 2, M Flux, M Lotus, M Polarity, M Apex, M Momentum, M Smash, M Stellar, M Binary, M Grim Reaper, M Crimson Woods, M Slippy Slide Up, M Spoon, M oco, M Orion, M Sketch, M Sunny Side Up, M Disposition, M Dodge, M Rapid, M Zap - ddnet-mapswhile(t > TickStartTime(m_CurrentGameTick + 1))
(edited)while(true)
it would not check for map changes or anything else and just go as fast as it could. ofc you couldnt join the server anymore if you were to do that
but im not sure. (edited)char *CAccount::GenerateID()
{
char aBuf[8];
FormatUuid(RandomUuid(), aBuf, sizeof(aBuf));
return aBuf;
}
?dbg_msg("GenerateID()", pSelf->m_pAccount->GenerateID());
print nothingchar *CAccount::GenerateID()
{
char aBuf[8];
FormatUuid(RandomUuid(), aBuf, sizeof(aBuf));
return aBuf;
}
? dbg_msg("GenerateID()", pSelf->m_pAccount->GenerateID());
print nothing char *CAccount::GenerateID()
{
char aBuf[8];
FormatUuid(RandomUuid(), aBuf, sizeof(aBuf));
return aBuf;
}
? CProjectile::CProjectile(CGameWorld *pGameWorld, int Type, int Owner, vec2 Pos, **vec2 Dir**
, int Span, bool Freeze, bool Explosive, int SoundImpact, int Layer = 0, int Number = 0)
vec2(0.f, 0.f)
maybeGetPos()
if you set Speed = 0.f;
before return CalcPos(m_Pos, m_Direction, Curvature, Speed, Time);
it works serversideCNetObj_Projectile
static_cast<CNetObj_EntityEx *>(Server()->SnapNewItem(NETOBJTYPE_ENTITYEX, GetID(), sizeof(CNetObj_EntityEx)));
kind ofstatic_cast<CNetObj_Projectile *>(Server()->SnapNewItem(NETOBJTYPE_PROJECTILE, GetID(), sizeof(CNetObj_Projectile)));
this one is what you actually need i thinkCProjectile
or CEntity
directly and in the snap function of that you snap a new CNetObj_*
void *(*foo)(int *);
void *
If you are having problem with deciphering complex pointer declarations like int (*(*foo[10])(void))(int) then you are at the right place. In this tutorial, you would learn to decipher any complex pointer declarations.
To decipher complex declarations, remember these two simple rules:
Always read declarations from the inside out: Start from the innermost, if any, parenthesis. Locate the identifier that's being declared, and start deciphering the declaration from there.
When there is a choice, always favor [] and () over *: If * precedes the identifier and [] follows it, the identifier represents an array, not a pointer. Likewise, if * precedes the identifier and () follows it, the identifier represents a function, not a pointer. (Parentheses can always be used to override the normal priority of [] and () over *.)