void CGameContext::ConRocket(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *)pUserData; if (!CheckClientID(pResult->m_ClientID)) return; int Victim = pResult->GetVictim(); CPlayer *pPlayer = pSelf->m_apPlayers[Victim]; if(!pPlayer) return; pSelf->ModifyWeapons(pResult, pUserData, WEAPON_GRENADE, false); char aBuf[128]; if (!pPlayer->m_IsRocket) { pPlayer->m_IsRocket = true; str_format(aBuf, sizeof(aBuf), "You got Rocket by %s.", pSelf->Server()->ClientName(pResult->m_ClientID)); pSelf->SendChatTarget(Victim, aBuf); } else { pPlayer->m_IsRocket = false; str_format(aBuf, sizeof(aBuf), "%s removed your Rocket.", pSelf->Server()->ClientName(pResult->m_ClientID)); pSelf->SendChatTarget(Victim, aBuf); } }
void CGameContext::ConRename(IConsole::IResult *pResult, void *pUserData) { if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; const char *newName = pResult->GetString(0); CGameContext *pSelf = (CGameContext *)pUserData; int Victim = pResult->GetVictim(); CPlayer *pPlayer = pSelf->m_apPlayers[Victim]; if(!pPlayer) return; CCharacter* pChr = pSelf->m_apPlayers[Victim]->GetCharacter(); if(!pChr) return; //change name char oldName[MAX_NAME_LENGTH]; str_copy(oldName, pSelf->Server()->ClientName(Victim), MAX_NAME_LENGTH); pSelf->Server()->SetClientName(Victim, newName); char aBuf[256]; str_format(aBuf, sizeof(aBuf), "%s has changed %s's name to '%s'", pSelf->Server()->ClientName(pResult->m_ClientID), oldName, pSelf->Server()->ClientName(Victim)); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "info", aBuf); str_format(aBuf, sizeof(aBuf), "%s changed your name to %s.", pSelf->Server()->ClientName(pResult->m_ClientID), pSelf->Server()->ClientName(Victim)); pSelf->SendChatTarget(Victim, aBuf); }
void CGameContext::ConRank(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientID]; if (!pPlayer) return; #if defined(CONF_SQL) if(g_Config.m_SvUseSQL) if(pPlayer->m_LastSQLQuery + pSelf->Server()->TickSpeed() >= pSelf->Server()->Tick()) return; #endif if (pResult->NumArguments() > 0) if (!g_Config.m_SvHideScore) pSelf->Score()->ShowRank(pResult->m_ClientID, pResult->GetString(0), true); else pSelf->Console()->Print( IConsole::OUTPUT_LEVEL_STANDARD, "rank", "Showing the rank of other players is not allowed on this server."); else pSelf->Score()->ShowRank(pResult->m_ClientID, pSelf->Server()->ClientName(pResult->m_ClientID)); #if defined(CONF_SQL) if(g_Config.m_SvUseSQL) pPlayer->m_LastSQLQuery = pSelf->Server()->Tick(); #endif }
void CGameContext::ConLoad(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientID]; if (!pPlayer) return; #if defined(CONF_SQL) if(!g_Config.m_SvSaveGames) { pSelf->SendChatTarget(pResult->m_ClientID, "Save-function is disabled on this server"); return; } if(g_Config.m_SvUseSQL) if(pPlayer->m_LastSQLQuery + pSelf->Server()->TickSpeed() >= pSelf->Server()->Tick()) return; #endif if (pResult->NumArguments() > 0) pSelf->Score()->LoadTeam(pResult->GetString(0), pResult->m_ClientID); else return; #if defined(CONF_SQL) if(g_Config.m_SvUseSQL) pPlayer->m_LastSQLQuery = pSelf->Server()->Tick(); #endif }
void CGameContext::ConTimeout(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientID]; if (!pPlayer) return; for(int i = 0; i < pSelf->Server()->MaxClients(); i++) { if (i == pResult->m_ClientID) continue; if (!pSelf->m_apPlayers[i]) continue; if (str_comp(pSelf->m_apPlayers[i]->m_TimeoutCode, pResult->GetString(0))) continue; if (((CServer *)pSelf->Server())->m_NetServer.SetTimedOut(i, pResult->m_ClientID)) { ((CServer *)pSelf->Server())->DelClientCallback(pResult->m_ClientID, "Timeout Protection used", ((CServer *)pSelf->Server())); ((CServer *)pSelf->Server())->m_aClients[i].m_Authed = CServer::AUTHED_NO; if (pSelf->m_apPlayers[i]->GetCharacter()) ((CGameContext *)(((CServer *)pSelf->Server())->GameServer()))->SendTuningParams(i, pSelf->m_apPlayers[i]->GetCharacter()->m_TuneZone); return; } } ((CServer *)pSelf->Server())->m_NetServer.SetTimeoutProtected(pResult->m_ClientID); str_copy(pPlayer->m_TimeoutCode, pResult->GetString(0), sizeof(pPlayer->m_TimeoutCode)); }
void CGameContext::ConSayTimeAll(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientID]; if (!pPlayer) return; CCharacter* pChr = pPlayer->GetCharacter(); if (!pChr) return; if(pChr->m_DDRaceState != DDRACE_STARTED) return; char aBuftime[64]; int IntTime = (int) ((float) (pSelf->Server()->Tick() - pChr->m_StartTime) / ((float) pSelf->Server()->TickSpeed())); str_format(aBuftime, sizeof(aBuftime), "%s\'s current race time is %s%d:%s%d", pSelf->Server()->ClientName(pResult->m_ClientID), ((IntTime / 60) > 9) ? "" : "0", IntTime / 60, ((IntTime % 60) > 9) ? "" : "0", IntTime % 60); pSelf->SendChat(-1, CGameContext::CHAT_ALL, aBuftime, pResult->m_ClientID); }
void CGameContext::ConMapInfo(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientID]; if (!pPlayer) return; #if defined(CONF_SQL) if(g_Config.m_SvUseSQL) if(pPlayer->m_LastSQLQuery + pSelf->Server()->TickSpeed() >= pSelf->Server()->Tick()) return; #endif if (pResult->NumArguments() > 0) pSelf->Score()->MapInfo(pResult->m_ClientID, pResult->GetString(0)); else pSelf->Score()->MapInfo(pResult->m_ClientID, g_Config.m_SvMap); #if defined(CONF_SQL) if(g_Config.m_SvUseSQL) pPlayer->m_LastSQLQuery = pSelf->Server()->Tick(); #endif }
void CGameContext::ConTop5(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; #if defined(CONF_SQL) if(pSelf->m_apPlayers[pResult->m_ClientID] && g_Config.m_SvUseSQL) if(pSelf->m_apPlayers[pResult->m_ClientID]->m_LastSQLQuery + pSelf->Server()->TickSpeed() >= pSelf->Server()->Tick()) return; #endif if (g_Config.m_SvHideScore) { pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "top5", "Showing the top 5 is not allowed on this server."); return; } if (pResult->NumArguments() > 0 && pResult->GetInteger(0) > 0) pSelf->Score()->ShowTop5(pResult, pResult->m_ClientID, pUserData, pResult->GetInteger(0)); else pSelf->Score()->ShowTop5(pResult, pResult->m_ClientID, pUserData); #if defined(CONF_SQL) if(pSelf->m_apPlayers[pResult->m_ClientID] && g_Config.m_SvUseSQL) pSelf->m_apPlayers[pResult->m_ClientID]->m_LastSQLQuery = pSelf->Server()->Tick(); #endif }
void CGameContext::ConFastReload(IConsole::IResult *pResult, void *pUserData) { if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; CGameContext *pSelf = (CGameContext *)pUserData; int Victim = pResult->GetVictim(); CPlayer *pPlayer = pSelf->m_apPlayers[Victim]; if(!pPlayer) return; CCharacter* pChr = pSelf->m_apPlayers[Victim]->GetCharacter(); if(!pChr) return; char aBuf[128]; if (!pChr->m_FastReload) { pChr->m_ReloadMultiplier = 10000; pChr->m_FastReload = true; str_format(aBuf, sizeof(aBuf), "You got XXL by %s.", pSelf->Server()->ClientName(pResult->m_ClientID)); pSelf->SendChatTarget(Victim, aBuf); } else { pChr->m_ReloadMultiplier = 1000; pChr->m_FastReload = false; str_format(aBuf, sizeof(aBuf), "%s removed your XXL.", pSelf->Server()->ClientName(pResult->m_ClientID)); pSelf->SendChatTarget(Victim, aBuf); } pChr->m_DDRaceState = DDRACE_CHEAT; }
void CGameContext::ConEyeEmote(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (g_Config.m_SvEmotionalTees == -1) { pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "emote", "Server admin disabled emotes."); return; } if (!CheckClientID(pResult->m_ClientID)) return; CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientID]; if (!pPlayer) return; if (pResult->NumArguments() == 0) { pSelf->Console()->Print( IConsole::OUTPUT_LEVEL_STANDARD, "emote", "Emote commands are: /emote surprise /emote blink /emote close /emote angry /emote happy /emote pain"); pSelf->Console()->Print( IConsole::OUTPUT_LEVEL_STANDARD, "emote", "Example: /emote surprise 10 for 10 seconds or /emote surprise (default 1 second)"); } else { if(pPlayer->m_LastEyeEmote + g_Config.m_SvEyeEmoteChangeDelay * pSelf->Server()->TickSpeed() >= pSelf->Server()->Tick()) return; if (!str_comp(pResult->GetString(0), "angry")) pPlayer->m_DefEmote = EMOTE_ANGRY; else if (!str_comp(pResult->GetString(0), "blink")) pPlayer->m_DefEmote = EMOTE_BLINK; else if (!str_comp(pResult->GetString(0), "close")) pPlayer->m_DefEmote = EMOTE_BLINK; else if (!str_comp(pResult->GetString(0), "happy")) pPlayer->m_DefEmote = EMOTE_HAPPY; else if (!str_comp(pResult->GetString(0), "pain")) pPlayer->m_DefEmote = EMOTE_PAIN; else if (!str_comp(pResult->GetString(0), "surprise")) pPlayer->m_DefEmote = EMOTE_SURPRISE; else if (!str_comp(pResult->GetString(0), "normal")) pPlayer->m_DefEmote = EMOTE_NORMAL; else pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "emote", "Unknown emote... Say /emote"); int Duration = 1; if (pResult->NumArguments() > 1) Duration = pResult->GetInteger(1); pPlayer->m_DefEmoteReset = pSelf->Server()->Tick() + Duration * pSelf->Server()->TickSpeed(); pPlayer->m_LastEyeEmote = pSelf->Server()->Tick(); } }
void CGameContext::ConScore(IConsole::IResult *pResult, void *pUserData) { if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; int Victim = pResult->GetVictim(); int Score = clamp(pResult->GetInteger(0), -9999, 9999); CGameContext *pSelf = (CGameContext *)pUserData; CPlayer *pPlayer = pSelf->m_apPlayers[Victim]; if(!pPlayer) return; if (!g_Config.m_SvRconScore) { pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "info", "You can't set a score, if sv_rcon_score is not enabled."); return; } CCharacter* pChr = pSelf->m_apPlayers[Victim]->GetCharacter();; if(!pChr) return; pSelf->m_apPlayers[Victim]->m_Score = Score; char aBuf[256]; str_format(aBuf, sizeof(aBuf), "%s set score of %s to %i" ,pSelf->Server()->ClientName(pResult->m_ClientID),pSelf->Server()->ClientName(Victim), Score); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "info", aBuf); str_format(aBuf, sizeof(aBuf), "%s set your to %i.", pSelf->Server()->ClientName(pResult->m_ClientID), Score); pSelf->SendChatTarget(Victim, aBuf); }
void CGameContext::ConBlood(IConsole::IResult *pResult, void *pUserData) { if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; int Victim = pResult->GetVictim(); CGameContext *pSelf = (CGameContext *)pUserData; CPlayer *pPlayer = pSelf->m_apPlayers[Victim]; if(!pPlayer) return; CCharacter* pChr = pSelf->m_apPlayers[Victim]->GetCharacter();; if(!pChr) return; char aBuf[128]; if (!pChr->m_Bloody) { pChr->m_Bloody = true; str_format(aBuf, sizeof(aBuf), "You got bloody by %s.", pSelf->Server()->ClientName(pResult->m_ClientID)); pSelf->SendChatTarget(Victim, aBuf); } else { pChr->m_Bloody = false; str_format(aBuf, sizeof(aBuf), "%s removed your blood.", pSelf->Server()->ClientName(pResult->m_ClientID)); pSelf->SendChatTarget(Victim, aBuf); } }
void CGameContext::ConSave(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientID]; if (!pPlayer) return; #if defined(CONF_SQL) if(!g_Config.m_SvSaveGames) { pSelf->SendChatTarget(pResult->m_ClientID, "Save-function is disabled on this server"); return; } if(g_Config.m_SvUseSQL) if(pPlayer->m_LastSQLQuery + pSelf->Server()->TickSpeed() >= pSelf->Server()->Tick()) return; int Team = ((CGameControllerDDRace*) pSelf->m_pController)->m_Teams.m_Core.Team(pResult->m_ClientID); const char* pCode = pResult->GetString(0); char aCountry[5]; if(str_length(pCode) > 3 && pCode[0] >= 'A' && pCode[0] <= 'Z' && pCode[1] >= 'A' && pCode[1] <= 'Z' && pCode[2] >= 'A' && pCode[2] <= 'Z') { if(pCode[3] == ' ') { str_copy(aCountry, pCode, 4); pCode = pCode + 4; } else if(str_length(pCode) > 4 && pCode[4] == ' ') { str_copy(aCountry, pCode, 5); pCode = pCode + 5; } else { str_copy(aCountry, g_Config.m_SvSqlServerName, sizeof(aCountry)); } } else { str_copy(aCountry, g_Config.m_SvSqlServerName, sizeof(aCountry)); } pSelf->Score()->SaveTeam(Team, pCode, pResult->m_ClientID, aCountry); if(g_Config.m_SvUseSQL) pPlayer->m_LastSQLQuery = pSelf->Server()->Tick(); #endif }
// mute through client id void CGameContext::ConMuteID(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; int Victim = pResult->GetVictim(); NETADDR Addr; pSelf->Server()->GetClientAddr(Victim, &Addr); pSelf->Mute(pResult, &Addr, clamp(pResult->GetInteger(0), 1, 86400), pSelf->Server()->ClientName(Victim)); }
void CGameContext::ConTimes(IConsole::IResult *pResult, void *pUserData) { if(!CheckClientID(pResult->m_ClientID)) return; CGameContext *pSelf = (CGameContext *)pUserData; #if defined(CONF_SQL) if(pSelf->m_apPlayers[pResult->m_ClientID] && g_Config.m_SvUseSQL) if(pSelf->m_apPlayers[pResult->m_ClientID]->m_LastSQLQuery + pSelf->Server()->TickSpeed() >= pSelf->Server()->Tick()) return; #endif if(g_Config.m_SvUseSQL) { CSqlScore *pScore = (CSqlScore *)pSelf->Score(); CPlayer *pPlayer = pSelf->m_apPlayers[pResult->m_ClientID]; if(!pPlayer) return; if(pResult->NumArguments() == 0) { pScore->ShowTimes(pPlayer->GetCID(),1); return; } else if(pResult->NumArguments() < 3) { if (pResult->NumArguments() == 1) { if(pResult->GetInteger(0) != 0) pScore->ShowTimes(pPlayer->GetCID(),pResult->GetInteger(0)); else pScore->ShowTimes(pPlayer->GetCID(), (str_comp(pResult->GetString(0), "me") == 0) ? pSelf->Server()->ClientName(pResult->m_ClientID) : pResult->GetString(0),1); return; } else if (pResult->GetInteger(1) != 0) { pScore->ShowTimes(pPlayer->GetCID(), (str_comp(pResult->GetString(0), "me") == 0) ? pSelf->Server()->ClientName(pResult->m_ClientID) : pResult->GetString(0),pResult->GetInteger(1)); return; } } pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "times", "/times needs 0, 1 or 2 parameter. 1. = name, 2. = start number"); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "times", "Example: /times, /times me, /times Hans, /times \"Papa Smurf\" 5"); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "times", "Bad: /times Papa Smurf 5 # Good: /times \"Papa Smurf\" 5 "); #if defined(CONF_SQL) if(pSelf->m_apPlayers[pResult->m_ClientID] && g_Config.m_SvUseSQL) pSelf->m_apPlayers[pResult->m_ClientID]->m_LastSQLQuery = pSelf->Server()->Tick(); #endif } }
void CGameContext::ConGiveMoney(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; int Time = pResult->GetInteger(0); int JailID = pResult->GetVictim(); char aBuf[200]; if(Time > 5000000 || Time < 1) { pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "Debug", "Set a value between 1 and 5Mio"); return; } CCharacter* pChr = pSelf->GetPlayerChar(JailID); if(pChr) { if(pChr->IsAlive()) { pChr->GetPlayer()->m_AccData.m_Money += Time; if(Time) { str_format(aBuf, sizeof aBuf, "'%s' got %d TC", pSelf->Server()->ClientName(JailID), Time); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "Money", aBuf); } } } }
void CGameContext::ConJail(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; int Time = pResult->GetInteger(0); int JailID = pResult->GetVictim(); char aBuf[200]; if(Time < 20 || Time > 2419200) { pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "Jail", "Set a time between 20 and 2419200 (4 weeks)"); return; } CCharacter* pChr = pSelf->GetPlayerChar(JailID); if(pChr) { if(pChr->IsAlive()) { pChr->GetPlayer()->m_AccData.m_Arrested = Time; if(Time) { str_format(aBuf, sizeof aBuf, "'%s' is arrested for %i secounds.", pSelf->Server()->ClientName(JailID), Time); pSelf->SendChat(-1, CHAT_ALL, aBuf); pChr->Die(pChr->GetPlayer()->GetCID(), WEAPON_GAME); } } } }
void CGameContext::ConCLEANEXTRAS(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, "Removed all extras From '%s'", pSelf->Server()->ClientName(Victim)); pSelf->SendChat(-1, CHAT_ALL, aBuf); //pChr->m_pPlayer->m_Rainbow = false; //pChr->m_pPlayer->m_Invisible = false; pChr->m_FreezeHammer = false; //pChr->m_pPlayer->m_Rainbow = false; //pChr->m_Rainbow = false; pChr->m_Rainbow = RAINBOW_NONE; pSelf->m_apPlayers[Victim]->m_Rainbow = RAINBOW_NONE; pChr->m_FastReload = false; pChr->m_ReloadMultiplier = 1000; pChr->m_Super = false; pChr->m_HammerType = 0; pChr->m_Bloody = false; pChr->m_Invisible = false; //Msg.m_ColorBody = g_Config.m_PlayerColorBody; //Msg.m_ColorFeet = g_Config.m_PlayerColorFeet; }
void CGameContext::ConSetTeam(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *)pUserData; int ClientID = clamp(pResult->GetInteger(0), 0, (int)MAX_CLIENTS-1); int Team = clamp(pResult->GetInteger(1), -1, 1); int Delay = pResult->NumArguments()>2 ? pResult->GetInteger(2) : 0; if(!pSelf->m_apPlayers[ClientID]) return; char aBuf[256]; str_format(aBuf, sizeof(aBuf), "moved client %d to team %d", ClientID, Team); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server", aBuf); pSelf->m_apPlayers[ClientID]->m_TeamChangeTick = pSelf->Server()->Tick()+pSelf->Server()->TickSpeed()*Delay*60; pSelf->m_pController->DoTeamChange(pSelf->m_apPlayers[ClientID], Team); }
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); }
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); } }
//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::ConLogout(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; int Victim = pResult->m_ClientID; if(Victim) pSelf->Server()->Logout(Victim); }
void CGameContext::ConKillPlayer(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; int Victim = pResult->GetVictim(); if (pSelf->m_apPlayers[Victim]) { pSelf->m_apPlayers[Victim]->KillCharacter(WEAPON_GAME); char aBuf[512]; str_format(aBuf, sizeof(aBuf), "%s was killed by %s", pSelf->Server()->ClientName(Victim), pSelf->Server()->ClientName(pResult->m_ClientID)); pSelf->SendChat(-1, CGameContext::CHAT_ALL, aBuf); } }
void CGameContext::ConSetlvl1(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *)pUserData; if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; int Victim = pResult->GetVictim(); CServer* pServ = (CServer*)pSelf->Server(); if(pSelf->m_apPlayers[Victim] && Victim != pResult->m_ClientID) pServ->SetRconLevel(Victim, pServ->AUTHED_HELPER); }
void CGameContext::ConDonor(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; int Switch = pResult->GetInteger(0); int DonorID = pResult->GetVictim(); char aBuf[200]; CCharacter* pChr = pSelf->GetPlayerChar(DonorID); if (pChr) { pChr->GetPlayer()->m_AccData.m_Donor = Switch; if(Switch) str_format(aBuf, sizeof aBuf, "'%s' is a Donor now.", pSelf->Server()->ClientName(DonorID)); else str_format(aBuf, sizeof aBuf, "'%s' is no longer a Donor.", pSelf->Server()->ClientName(DonorID)); pSelf->SendChat(-1, CHAT_ALL, aBuf); } }
void CGameContext::ConWhisper(IConsole::IResult *pResult, void *pUserData) { if(!CheckRights(pResult->m_ClientID, pResult->GetVictim(), (CGameContext *)pUserData)) return; CGameContext *pSelf = (CGameContext *)pUserData; int Victim = pResult->GetVictim(); CCharacter* pChr = pSelf->m_apPlayers[pResult->m_ClientID]->GetCharacter(); const char *message = pResult->GetString(0); if(!pChr) return; char aBuf[256]; str_format(aBuf, sizeof(aBuf), "%s: %s", pSelf->Server()->ClientName(pResult->m_ClientID), message); pSelf->SendChatTarget(Victim, aBuf); str_format(aBuf, sizeof(aBuf), "-->%s: %s", pSelf->Server()->ClientName(pResult->m_ClientID), message); pSelf->SendChatTarget(pResult->m_ClientID, aBuf); }
void CGameContext::ConPolice(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; int Switch = pResult->GetInteger(0); int PoliceID = pResult->GetVictim(); char aBuf[200]; CCharacter* pChr = pSelf->GetPlayerChar(PoliceID); if (pChr) { pSelf->Server()->Police(PoliceID,Switch?1:0); if(Switch) str_format(aBuf, sizeof aBuf, "'%s' is a Police now.", pSelf->Server()->ClientName(PoliceID)); else str_format(aBuf, sizeof aBuf, "'%s' is no longer a Police.", pSelf->Server()->ClientName(PoliceID)); pSelf->SendChat(-1, CHAT_ALL, aBuf); } }
void CGameContext::ConLogin(IConsole::IResult *pResult, void *pUserData) { if(!CheckClientID(pResult->GetInteger(0))) return; CGameContext *pSelf = (CGameContext *)pUserData; CPlayer *pPlayer = pSelf->m_apPlayers[pResult->GetInteger(0)]; if(!pPlayer) return; if(pPlayer->m_LastLogin + 5 * pSelf->Server()->TickSpeed() - pSelf->Server()->Tick() > 0) { pSelf->SendChatTarget(pResult->m_ClientID, "You can login every 5 seconds only"); return; } pPlayer->m_LastLogin = pSelf->Server()->Tick(); pSelf->MemberList->Login(pResult->m_ClientID, pResult->GetString(0), pSelf); }
void CGameContext::ConSayTime(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *) pUserData; if (!CheckClientID(pResult->m_ClientID)) return; int ClientID; char aBufname[MAX_NAME_LENGTH]; if (pResult->NumArguments() > 0) { for(ClientID = 0; ClientID < MAX_CLIENTS; ClientID++) if (str_comp(pResult->GetString(0), pSelf->Server()->ClientName(ClientID)) == 0) break; if(ClientID == MAX_CLIENTS) return; str_format(aBufname, sizeof(aBufname), "%s's", pSelf->Server()->ClientName(ClientID)); } else { str_copy(aBufname, "Your", sizeof(aBufname)); ClientID = pResult->m_ClientID; } CPlayer *pPlayer = pSelf->m_apPlayers[ClientID]; if (!pPlayer) return; CCharacter* pChr = pPlayer->GetCharacter(); if (!pChr) return; if(pChr->m_DDRaceState != DDRACE_STARTED) return; char aBuftime[64]; int IntTime = (int) ((float) (pSelf->Server()->Tick() - pChr->m_StartTime) / ((float) pSelf->Server()->TickSpeed())); str_format(aBuftime, sizeof(aBuftime), "%s time is %s%d:%s%d", aBufname, ((IntTime / 60) > 9) ? "" : "0", IntTime / 60, ((IntTime % 60) > 9) ? "" : "0", IntTime % 60); pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "time", aBuftime); }