From 3cb59795a67dd24a27cc9790be4feb2e767c9484 Mon Sep 17 00:00:00 2001 From: GreYFoXGTi Date: Mon, 23 Aug 2010 00:46:39 +0200 Subject: [PATCH] Added Protection against cheating to usage of /pause fixed /pause ammo when freezed Signed-off-by: GreYFoXGTi --- src/game/server/entities/pickup.cpp | 3 +++ src/game/server/gamecontext.cpp | 4 ++-- src/game/server/player.cpp | 6 ++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/game/server/entities/pickup.cpp b/src/game/server/entities/pickup.cpp index ae25f4a59..608e8e06d 100644 --- a/src/game/server/entities/pickup.cpp +++ b/src/game/server/entities/pickup.cpp @@ -81,6 +81,9 @@ void CPickup::Tick() pChr->m_aWeapons[WEAPON_GUN].m_Ammo = 0; pChr->m_aWeapons[WEAPON_HAMMER].m_Ammo =0; } + pChr->m_Ninja.m_ActivationDir=vec2(0,0); + pChr->m_Ninja.m_ActivationTick=0; + pChr->m_Ninja.m_CurrentMoveTime=0; } if (sound) { diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp index 63a9cc0e3..bf0b0bef4 100644 --- a/src/game/server/gamecontext.cpp +++ b/src/game/server/gamecontext.cpp @@ -652,7 +652,7 @@ void CGameContext::OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId) { CCharacter* chr = p->GetCharacter(); - if(!p->GetTeam() && (!chr->m_aWeapons[WEAPON_NINJA].m_Got || chr->m_FreezeTime)) + if(!p->GetTeam() && (!chr->m_aWeapons[WEAPON_NINJA].m_Got || chr->m_FreezeTime) && chr->IsGrounded() && chr->m_Pos==chr->m_PrevPos) { p->SaveCharacter(); p->SetTeam(-1); @@ -664,7 +664,7 @@ void CGameContext::OnMessage(int MsgId, CUnpacker *pUnpacker, int ClientId) //p->LoadCharacter();//TODO:Check if this system Works } else - SendChatTarget(ClientId, "You are not allowed to pause with ninja"); + SendChatTarget(ClientId, (chr->m_aWeapons[WEAPON_NINJA].m_Got)?"You can't use /pause while you are a ninja":(!chr->IsGrounded())?"You can't use /pause while you are a in air":"You can't use /pause while you are moving"); //if(chr->m_RaceState==RACE_STARTED) // chr->m_RaceState = RACE_PAUSE; diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp index bb95d2e5f..cc78679dd 100644 --- a/src/game/server/player.cpp +++ b/src/game/server/player.cpp @@ -232,9 +232,11 @@ void CPlayer::LoadCharacter() { Character->m_RaceState = m_PauseInfo.m_RaceState; Character->m_RefreshTime = Server()->Tick(); for(int i = 0; i < NUM_WEAPONS; ++i) { - if(m_PauseInfo.m_aHasWeapon[i]) { + if(m_PauseInfo.m_aHasWeapon[i]) + if(!m_PauseInfo.m_FreezeTime) Character->GiveWeapon(i, -1); - } + else + Character->GiveWeapon(i, 0); } Character->m_FreezeTime = m_PauseInfo.m_FreezeTime; Character->m_Doored = m_PauseInfo.m_Doored;