diff --git a/src/server/item_artifact.qc b/src/server/item_artifact.qc index 75874af..27af593 100644 --- a/src/server/item_artifact.qc +++ b/src/server/item_artifact.qc @@ -49,10 +49,6 @@ item_artifact::Touch(entity eToucher) } pl.g_items |= m_itemID; - pl.SetRenderMode(GetRenderMode()); - pl.SetRenderFX(GetRenderFX()); - pl.SetRenderColor(GetRenderColor()); - pl.SetRenderAmt(GetRenderAmt()); /* TODO: if deathmatch is 4 and player invincible, don't pick up */ if (cvar("deathmatch") == 0 || cvar("deathmatch") == 2) { diff --git a/src/shared/player.qc b/src/shared/player.qc index ccd2a93..2354520 100644 --- a/src/shared/player.qc +++ b/src/shared/player.qc @@ -335,8 +335,33 @@ player::ReceiveEntity(float new, float flChanged) HUD_AmmoNotify_Check(this); } - if (flChanged & PLAYER_ITEMS || flChanged & PLAYER_HEALTH) + if (flChanged & PLAYER_ITEMS || flChanged & PLAYER_HEALTH) { HUD_ItemNotify_Check(this); + + if (HasInvisibility()) { + SetRenderMode(RM_DONTRENDER); + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([0.5, 0.5, 0.5]); + SetRenderAmt(0.1f); + } else if (HasQuadDamage()) { + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([0.5, 0.5, 1.0]); + SetRenderAmt(0.45f); + } else if (HasInvulnerability()) { + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([1.0, 0.5, 0.0]); + SetRenderAmt(0.5f); + } else if (HasEnviroSuit()) { + SetRenderFX(RFX_GLOWSHELL); + SetRenderColor([0.5, 1.0, 0.5]); + SetRenderAmt(0.45f); + } + + p_model.SetRenderMode(GetRenderMode()); + p_model.SetRenderFX(GetRenderFX()); + p_model.SetRenderColor(GetRenderColor()); + p_model.SetRenderAmt(GetRenderAmt()); + } } /*