



KillTeam(int Team, int NewStrongID, int ExceptID) that purposefully uses the NewStrongID/ExceptID to ignore the person who killed first

Die(int Killer, int Weapon, bool SendKillMsg) (edited)




Character::Die function basically implements the team logic for whether to send a team kill message or just a kill message

c++
void CGameTeams::KillTeam(int Team, int NewStrongID, int ExceptID)
{
for(int i = 0; i < MAX_CLIENTS; i++)
{
if(m_Core.Team(i) == Team && GameServer()->m_apPlayers[i])
{
GameServer()->m_apPlayers[i]->m_VotedForPractice = false;
if(i != ExceptID)
{
GameServer()->m_apPlayers[i]->KillCharacter(WEAPON_SELF, false); // <<< this line of code is connected with the tees dying, and if i don't have the bool then what's the point in squashing it all
if(NewStrongID != -1 && i != NewStrongID)
{
GameServer()->m_apPlayers[i]->Respawn(true); // spawn the rest of team with weak hook on the killer
}
}
}
}
} (edited)false in KillCharacter tells the code if to send the message or not

Character::Die function basically implements the team logic for whether to send a team kill message or just a kill message 
CTeams send the kill message

false in KillCharacter tells the code if to send the message or not 








































GameServer() is bad, no idea how you added your new class but have you initialized your gamecontext pointer properly?

m_pGameServer properly?



0x0 is a null pointer constant. You need a pointer to the working instance of CGameContext

0x0 is a null pointer constant. You need a pointer to the working instance of CGameContext 
0xDEADBEEF0xBAADFOOD0xBAAAAAAD
CMyClass::CMyClass(CGameContext *pGameServer)CGameContext by value, you want a pointer to it

CGameContext::OnInit(...)init


CGameContext by value










CGameContext tgere















































Compiler optimization algorithms that are either enabled or strongly enhanced by the use of SSA include:
Constant propagation – conversion of computations from runtime to compile time, e.g. treat the instruction a=3*4+5; as if it were a=17;
Value range propagation[6] – precompute the potential ranges a calculation could be, allowing for the creation of branch predictions in advance
Sparse conditional constant propagation – range-check some values, allowing tests to predict the most likely branch
Dead-code elimination – remove code that will have no effect on the results
Global value numbering – replace duplicate calculations producing the same result
Partial-redundancy elimination – removing duplicate calculations previously performed in some branches of the program
Strength reduction – replacing expensive operations by less expensive but equivalent ones, e.g. replace integer multiply or divide by powers of 2 with the potentially less expensive shift left (for multiply) or shift right (for divide).
Register allocation – optimize how the limited number of machine registers may be used for calculations










