Clients can't set the health or stun timer of a character unless they receive a msg from the server
This commit is contained in:
@@ -323,7 +323,12 @@ namespace Barotrauma
|
|||||||
public float Stun
|
public float Stun
|
||||||
{
|
{
|
||||||
get { return AnimController.StunTimer; }
|
get { return AnimController.StunTimer; }
|
||||||
set { StartStun(value); }
|
set
|
||||||
|
{
|
||||||
|
if (GameMain.Client != null) return;
|
||||||
|
|
||||||
|
StartStun(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float Health
|
public float Health
|
||||||
@@ -332,6 +337,7 @@ namespace Barotrauma
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (!MathUtils.IsValid(value)) return;
|
if (!MathUtils.IsValid(value)) return;
|
||||||
|
if (GameMain.Client != null) return;
|
||||||
|
|
||||||
float newHealth = MathHelper.Clamp(value, minHealth, maxHealth);
|
float newHealth = MathHelper.Clamp(value, minHealth, maxHealth);
|
||||||
if (newHealth == health) return;
|
if (newHealth == health) return;
|
||||||
@@ -1830,9 +1836,14 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
if (isDead) return;
|
if (isDead) return;
|
||||||
|
|
||||||
|
//clients aren't allowed to kill characters unless they receive a network message
|
||||||
|
if (!isNetworkMessage && GameMain.Client != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (GameMain.NetworkMember != null)
|
if (GameMain.NetworkMember != null)
|
||||||
{
|
{
|
||||||
//if the Character is controlled by this client/server, let others know that the Character has died
|
|
||||||
if (Character.controlled == this)
|
if (Character.controlled == this)
|
||||||
{
|
{
|
||||||
string chatMessage = InfoTextManager.GetInfoText("Self_CauseOfDeath." + causeOfDeath.ToString());
|
string chatMessage = InfoTextManager.GetInfoText("Self_CauseOfDeath." + causeOfDeath.ToString());
|
||||||
@@ -1842,16 +1853,6 @@ namespace Barotrauma
|
|||||||
GameMain.LightManager.LosEnabled = false;
|
GameMain.LightManager.LosEnabled = false;
|
||||||
controlled = null;
|
controlled = null;
|
||||||
}
|
}
|
||||||
//if it's an ai Character, only let the server kill it
|
|
||||||
else if (GameMain.Server != null && this is AICharacter)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
//don't kill the Character unless received a message about the Character dying
|
|
||||||
else if (!isNetworkMessage)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GameServer.Log(Name+" has died (Cause of death: "+causeOfDeath+")", Color.Red);
|
GameServer.Log(Name+" has died (Cause of death: "+causeOfDeath+")", Color.Red);
|
||||||
|
|||||||
Reference in New Issue
Block a user