KillTeam(int Team, int NewStrongID, int ExceptID)
that purposefully uses the NewStrongID/ExceptID to ignore the person who killed firstDie(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 messagec++
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 notCharacter::Die
function basically implements the team logic for whether to send a team kill message or just a kill message CTeams
send the kill messagefalse
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
0xDEADBEEF
0xBAADFOOD
0xBAAAAAAD
CMyClass::CMyClass(CGameContext *pGameServer)
CGameContext
by value, you want a pointer to itCGameContext::OnInit(...)
init
CGameContext
by valueCGameContext
tgereCompiler 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