diff options
author | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-10-10 21:46:12 +0200 |
---|---|---|
committer | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-10-10 21:46:12 +0200 |
commit | ae5975e674122148f979a211bcf82094c5d0a206 (patch) | |
tree | b94884f7a00ac9e820d27d5213996ad6cf176b7e | |
parent | Removed some logging (diff) | |
download | cuberite-ae5975e674122148f979a211bcf82094c5d0a206.tar cuberite-ae5975e674122148f979a211bcf82094c5d0a206.tar.gz cuberite-ae5975e674122148f979a211bcf82094c5d0a206.tar.bz2 cuberite-ae5975e674122148f979a211bcf82094c5d0a206.tar.lz cuberite-ae5975e674122148f979a211bcf82094c5d0a206.tar.xz cuberite-ae5975e674122148f979a211bcf82094c5d0a206.tar.zst cuberite-ae5975e674122148f979a211bcf82094c5d0a206.zip |
-rw-r--r-- | source/ClientHandle.cpp | 9 | ||||
-rw-r--r-- | source/World.cpp | 3 | ||||
-rw-r--r-- | source/World.h | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/source/ClientHandle.cpp b/source/ClientHandle.cpp index f019fd862..f526432b4 100644 --- a/source/ClientHandle.cpp +++ b/source/ClientHandle.cpp @@ -887,6 +887,15 @@ void cClientHandle::HandleUseEntity(int a_TargetEntityID, bool a_IsLeftClick) { virtual bool Item(cEntity * a_Entity) override { + if (a_Entity->GetWorld()->IsPVPEnabled() == false) + { + // PVP is disabled + if (a_Entity->IsA("cPlayer") && Instigator->IsA("cPlayer")) + { + // Player is hurting another player which is not allowed when PVP is disabled so ignore it + return true; + } + } if (a_Entity->IsA("cPawn")) { reinterpret_cast<cPawn *>(a_Entity)->TakeDamage(Damage, Instigator); diff --git a/source/World.cpp b/source/World.cpp index 055a0a75e..fd4f5af6e 100644 --- a/source/World.cpp +++ b/source/World.cpp @@ -250,7 +250,8 @@ cWorld::cWorld( const AString & a_WorldName ) m_IsPumpkinBonemealable = IniFile.GetValueSetB("Plants", "IsPumpkinBonemealable", false); m_IsSugarcaneBonemealable = IniFile.GetValueSetB("Plants", "IsSugarcaneBonemealable", false); m_IsCactusBonemealable = IniFile.GetValueSetB("Plants", "IsCactusBonemealable", false); - + m_bEnabledPVP = IniFile.GetValueSetB("PVP", "Enabled", true); + m_GameMode = (eGameMode)IniFile.GetValueSetI("GameMode", "GameMode", m_GameMode ); if (!IniFile.WriteFile()) diff --git a/source/World.h b/source/World.h index 0fb2bac7c..654460737 100644 --- a/source/World.h +++ b/source/World.h @@ -68,6 +68,7 @@ public: long long GetWorldTime(void) const { return m_WorldTime; } //tolua_export eGameMode GetGameMode(void) const { return m_GameMode; } //tolua_export + bool IsPVPEnabled(void) const { return m_bEnabledPVP; } //tolua_export void SetWorldTime(long long a_WorldTime) { m_WorldTime = a_WorldTime; } //tolua_export @@ -416,6 +417,7 @@ private: long long m_WorldTime; // Time in seconds*20, this is sent to clients (is wrapped) unsigned long long CurrentTick; eGameMode m_GameMode; + bool m_bEnabledPVP; float m_WorldTimeFraction; // When this > 1.f m_WorldTime is incremented by 20 // The cRedstone class simulates redstone and needs access to m_RSList |