void CGameContext::ConFreeze(IConsole::IResult *pResult, void *pUserData) { if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; CGameContext *pSelf = (CGameContext *)pUserData; int Seconds = -1; int Victim = pResult->GetVictim(); char aBuf[128]; if(pResult->NumArguments() == 1) Seconds = clamp(pResult->GetInteger(0), -2, 9999); CCharacter* pChr = pSelf->GetPlayerChar(Victim); if(!pChr) return; if(pSelf->m_apPlayers[Victim]) { pChr->Freeze(Seconds); pChr->GetPlayer()->m_RconFreeze = Seconds != -2; CServer* pServ = (CServer*)pSelf->Server(); if(Seconds >= 0) str_format(aBuf, sizeof(aBuf), "'%s' ClientID=%d has been Frozen for %d.", pServ->ClientName(Victim), Victim, Seconds); else if(Seconds == -2) { pChr->m_DeepFreeze = true; str_format(aBuf, sizeof(aBuf), "'%s' ClientID=%d has been Deep Frozen.", pServ->ClientName(Victim), Victim); } else str_format(aBuf, sizeof(aBuf), "'%s' ClientID=%d is Frozen until you unfreeze him.", pServ->ClientName(Victim), Victim); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "info", aBuf); } }
void CGameContext::ConUnFreeze(IConsole::IResult *pResult, void *pUserData) { if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; CGameContext *pSelf = (CGameContext *)pUserData; int Victim = pResult->GetVictim(); static bool Warning = false; char aBuf[128]; CCharacter* pChr = pSelf->GetPlayerChar(Victim); if(!pChr) return; if(pChr->m_DeepFreeze && !Warning) { pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "warning", "This client is deeply frozen, repeat the command to defrost him."); Warning = true; return; } if(pChr->m_DeepFreeze && Warning) { pChr->m_DeepFreeze = false; Warning = false; } pChr->m_FreezeTime = 2; pChr->GetPlayer()->m_RconFreeze = false; CServer* pServ = (CServer*)pSelf->Server(); str_format(aBuf, sizeof(aBuf), "'%s' ClientID=%d has been defrosted.", pServ->ClientName(Victim), Victim); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "info", aBuf); }
//Restored void CGameContext::ConHammer(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *)pUserData; int Victim = pResult->GetVictim(); if(!CheckRights(pResult->m_ClientID, Victim, (CGameContext *)pUserData)) return; char aBuf[128]; int Type = pResult->GetInteger(0); CPlayer *pPlayer = pSelf->m_apPlayers[Victim]; if(!pPlayer) return; CCharacter* pChr = pSelf->GetPlayerChar(Victim); if(!pChr) return; CServer* pServ = (CServer*)pSelf->Server(); if(Type > 10 || Type < 0) { pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "info", "Select hammer between 0 and 10"); } else { pChr->m_HammerType = Type; pChr->m_DDRaceState = DDRACE_CHEAT; str_format(aBuf, sizeof(aBuf), "Hammer of '%s' ClientID=%d setted to %d", pServ->ClientName(Victim), Victim, Type); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "info", aBuf); } }
void CGameContext::ConForcePause(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; // if(!CheckClientID(pResult->m_ClientID)) return; CServer* pServ = (CServer*) pSelf->Server(); int Victim = pResult->GetVictim(); int Seconds = 0; char aBuf[128]; if (pResult->NumArguments() > 0 && pResult->m_ClientID < 0) Seconds = clamp(pResult->GetInteger(0), 0, 15); //else if(pResult->NumArguments() > 0 && CheckClientID(pResult->m_ClientID)) //Seconds = clamp(pResult->GetInteger(1), 0, 360); CPlayer *pPlayer = pSelf->m_apPlayers[Victim]; if (!pPlayer || (!Seconds && pResult->m_ClientID >= 0)) return; CCharacter* pChr = pPlayer->GetCharacter(); if (!pPlayer->GetTeam() && pChr && !pPlayer->m_InfoSaved && pResult->m_ClientID < 0) { pPlayer->SaveCharacter(); pPlayer->m_InfoSaved = true; pPlayer->SetTeam(TEAM_SPECTATORS); pPlayer->m_ForcePauseTime = Seconds * pServ->TickSpeed(); } else { pPlayer->m_ForcePauseTime = Seconds * pServ->TickSpeed(); } if (pResult->m_ClientID < 0) str_format(aBuf, sizeof(aBuf), "'%s' has been force-paused for %d seconds", pServ->ClientName(Victim), Seconds); else str_format(aBuf, sizeof(aBuf), "Force-pause of '%s' have been removed by '%s'", pServ->ClientName(Victim), pServ->ClientName(pResult->m_ClientID)); pSelf->SendChat(-1, CHAT_ALL, aBuf); }
void CGameContext::ConVis(IConsole::IResult *pResult, void *pUserData) { if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; CGameContext *pSelf = (CGameContext *)pUserData; int Victim = pResult->GetVictim(); if(!pSelf->m_apPlayers[pResult->m_ClientID]) return; char aBuf[128]; if(pSelf->m_apPlayers[Victim]) { pSelf->m_apPlayers[Victim]->m_Invisible = false; CServer* pServ = (CServer*)pSelf->Server(); str_format(aBuf, sizeof(aBuf), "'%s' ClientID=%d is visible.", pServ->ClientName(Victim), Victim); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "info", aBuf); } }