From 8fc4390983e352b9a6b22f25582d2f1b1fd9543e Mon Sep 17 00:00:00 2001 From: Bamcane Date: Sun, 10 Mar 2024 19:50:07 +0800 Subject: [PATCH] add ready command for 0.6 --- src/game/server/gamecontext.cpp | 16 ++++++++++++++++ src/game/server/gamecontext.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp index e84f086d24..976081af0d 100644 --- a/src/game/server/gamecontext.cpp +++ b/src/game/server/gamecontext.cpp @@ -1715,6 +1715,19 @@ void CGameContext::ComWhisper(IConsole::IResult *pResult, void *pContext) pSelf->SendChat(pComContext->m_ClientID, CHAT_WHISPER, Target, pResult->GetString(1)); } +void CGameContext::ComReady(IConsole::IResult *pResult, void *pContext) +{ + CCommandManager::SCommandContext *pComContext = (CCommandManager::SCommandContext *)pContext; + CGameContext *pSelf = (CGameContext *)pComContext->m_pContext; + + CPlayer *pPlayer = pSelf->m_apPlayers[pComContext->m_ClientID]; + if(pPlayer->m_LastReadyChangeTick && pPlayer->m_LastReadyChangeTick+pSelf->Server()->TickSpeed()*1 > pSelf->Server()->Tick()) + return; + + pPlayer->m_LastReadyChangeTick = pSelf->Server()->Tick(); + pSelf->m_pController->OnPlayerReadyChange(pPlayer); +} + void CGameContext::OnInit() { // init everything @@ -1760,6 +1773,9 @@ void CGameContext::OnInit() CommandManager()->AddCommand("lang", "Setting your language", "?s[text]", ComLanguage, this); CommandManager()->AddCommand("language", "Setting your language", "?s[text]", ComLanguage, this); + CommandManager()->AddCommand("r", "Switch your ready state", "", ComReady, this); + CommandManager()->AddCommand("ready", "Switch your ready state", "", ComReady, this); + // create all entities from the game layer CMapItemLayerTilemap *pTileMap = m_Layers.GameLayer(); CTile *pTiles = (CTile *)Kernel()->RequestInterface()->GetData(pTileMap->m_Data); diff --git a/src/game/server/gamecontext.h b/src/game/server/gamecontext.h index 6b4e8cb379..b89adc6fac 100644 --- a/src/game/server/gamecontext.h +++ b/src/game/server/gamecontext.h @@ -74,6 +74,7 @@ class CGameContext : public IGameServer static void ComLanguage(IConsole::IResult *pResult, void *pContext); static void ComWhisper(IConsole::IResult *pResult, void *pContext); + static void ComReady(IConsole::IResult *pResult, void *pContext); CGameContext(int Resetting); void Construct(int Resetting);