Add freezehammer/unfreezehammer for blocker

This commit is contained in:
def 2014-07-16 02:59:39 +02:00
parent 1cf7951f93
commit eaeaf54250
5 changed files with 47 additions and 0 deletions

View file

@ -44,6 +44,9 @@ CONSOLE_COMMAND("muteid", "vi", CFGFLAG_SERVER, ConMuteID, this, "");
CONSOLE_COMMAND("muteip", "si", CFGFLAG_SERVER, ConMuteIP, this, "");
CONSOLE_COMMAND("unmute", "v", CFGFLAG_SERVER, ConUnmute, this, "");
CONSOLE_COMMAND("mutes", "", CFGFLAG_SERVER, ConMutes, this, "");
CONSOLE_COMMAND("freezehammer", "v", CFGFLAG_SERVER, ConFreezeHammer, this, "Gives a player Freeze Hammer")
CONSOLE_COMMAND("unfreezehammer", "v", CFGFLAG_SERVER, ConUnFreezeHammer, this, "Removes Freeze Hammer from a player")
#undef CONSOLE_COMMAND
#endif

View file

@ -493,3 +493,39 @@ void CGameContext::ConList(IConsole::IResult *pResult, void *pUserData)
else
pSelf->List(ClientID, &zerochar);
}
void CGameContext::ConFreezeHammer(IConsole::IResult *pResult, void *pUserData)
{
CGameContext *pSelf = (CGameContext *) pUserData;
int Victim = pResult->GetVictim();
CCharacter* pChr = pSelf->GetPlayerChar(Victim);
if (!pChr)
return;
char aBuf[128];
str_format(aBuf, sizeof aBuf, "'%s' got freeze hammer!",
pSelf->Server()->ClientName(Victim));
pSelf->SendChat(-1, CHAT_ALL, aBuf);
pChr->m_FreezeHammer = true;
}
void CGameContext::ConUnFreezeHammer(IConsole::IResult *pResult, void *pUserData)
{
CGameContext *pSelf = (CGameContext *) pUserData;
int Victim = pResult->GetVictim();
CCharacter* pChr = pSelf->GetPlayerChar(Victim);
if (!pChr)
return;
char aBuf[128];
str_format(aBuf, sizeof aBuf, "'%s' lost freeze hammer!",
pSelf->Server()->ClientName(Victim));
pSelf->SendChat(-1, CHAT_ALL, aBuf);
pChr->m_FreezeHammer = false;
}

View file

@ -429,6 +429,10 @@ void CCharacter::FireWeapon()
pTarget->TakeDamage((vec2(0.f, -1.0f) + Temp) * Strength, g_pData->m_Weapons.m_Hammer.m_pBase->m_Damage,
m_pPlayer->GetCID(), m_Core.m_ActiveWeapon);
pTarget->UnFreeze();
if(m_FreezeHammer)
pTarget->Freeze();
Hits++;
}
@ -2039,6 +2043,7 @@ void CCharacter::DDRaceInit()
m_SuperJump = false;
m_Jetpack = false;
m_Core.m_Jumps = 2;
m_FreezeHammer = false;
int Team = Teams()->m_Core.Team(m_Core.m_Id);

View file

@ -182,6 +182,7 @@ public:
int m_FreezeTick;
bool m_DeepFreeze;
bool m_EndlessHook;
bool m_FreezeHammer;
enum
{
HIT_ALL=0,

View file

@ -296,6 +296,8 @@ private:
static void ConMutes(IConsole::IResult *pResult, void *pUserData);
static void ConList(IConsole::IResult *pResult, void *pUserData);
static void ConFreezeHammer(IConsole::IResult *pResult, void *pUserData);
static void ConUnFreezeHammer(IConsole::IResult *pResult, void *pUserData);
enum
{