From 0221f68d35862e9896ddabe59c779f99fbbf42d2 Mon Sep 17 00:00:00 2001 From: btd Date: Tue, 14 Sep 2010 15:38:46 +0400 Subject: [PATCH] Disable /show_others (for DDRace-Client instead use menu). Fix sending all teams information to new joiners --- src/game/server/entities/character.cpp | 4 ++++ src/game/server/gamecontext.cpp | 3 ++- src/game/server/player.cpp | 5 +---- src/game/server/teams.cpp | 11 +++++++++++ src/game/server/teams.h | 2 ++ 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index eadcb0b4c..c5e248fc4 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -89,6 +89,10 @@ bool CCharacter::Spawn(CPlayer *pPlayer, vec2 Pos) m_Alive = true; if(m_pPlayer->m_RconFreeze) Freeze(-1); GameServer()->m_pController->OnCharacterSpawn(this); + + if(GetPlayer()->m_IsUsingRaceClient) { + Teams()->SendAllInfo(GetPlayer()->GetCID()); + } return true; } diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp index 85e113fb9..aa324635a 100644 --- a/src/game/server/gamecontext.cpp +++ b/src/game/server/gamecontext.cpp @@ -850,6 +850,7 @@ void CGameContext::OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId) else Score()->ShowRank(p->GetCID(), Server()->ClientName(ClientId)); } + /* disable it for vanilla clients else if(!str_comp(pMsg->m_pMessage, "/show_others")) { if(!g_Config.m_SvShowOthers && !Server()->IsAuthed(ClientId)) { @@ -860,7 +861,7 @@ void CGameContext::OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId) SendChatTarget(ClientId, "Please use the settings to switch this option."); else p->m_ShowOthers = !p->m_ShowOthers; - } + }*/ else if (!str_comp_nocase(pMsg->m_pMessage, "/time") && g_Config.m_SvEmotionalTees) { diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp index b66bb37ea..2dbdb90b6 100644 --- a/src/game/server/player.cpp +++ b/src/game/server/player.cpp @@ -32,10 +32,7 @@ CPlayer::CPlayer(CGameContext *pGameServer, int CID, int Team) m_PauseInfo.m_Respawn = false; - if(!g_Config.m_SvShowOthers) - m_ShowOthers = false; - else - m_ShowOthers = true; + m_ShowOthers = false; m_IsUsingRaceClient = false; m_LastSentTime = 0; diff --git a/src/game/server/teams.cpp b/src/game/server/teams.cpp index 30f19e3f8..efdbec46a 100644 --- a/src/game/server/teams.cpp +++ b/src/game/server/teams.cpp @@ -120,3 +120,14 @@ int CGameTeams::TeamMask(int Team) { } return Mask; } + +void CGameTeams::SendAllInfo(int Cid) { + for(int i = 0; i < MAX_CLIENTS; ++i) { + if(m_Core.Team(i) != 0) { + CNetMsg_Sv_PlayerTeam Msg; + Msg.m_Team = m_Core.Team(i); + Msg.m_Cid = i; + Server()->SendPackMsg(&Msg, MSGFLAG_VITAL, Cid); + } + } +} diff --git a/src/game/server/teams.h b/src/game/server/teams.h index 881d7eee5..c2578abe4 100644 --- a/src/game/server/teams.h +++ b/src/game/server/teams.h @@ -39,6 +39,8 @@ public: bool TeamFinished(int Team); int TeamMask(int Team); + + void SendAllInfo(int Cid); }; #endif