class Hello extends PluginAdminLog { void Hello() { Print("Plugin loaded"); } void ~Hello() { Print("Plugin died"); } override void PlayerKilled( PlayerBase player, Object source ) // PlayerBase.c { Print("Custom PlayerKilled"); super.PlayerKilled(player, source); if ( player && source ) { m_PlayerPrefix = this.GetPlayerPrefix( player , player.GetIdentity() ); if( player == source ) // deaths not caused by another object (starvation, dehydration) { m_StatWater = player.GetStatWater(); m_StatEnergy = player.GetStatEnergy(); m_BleedMgr = player.GetBleedingManagerServer(); if ( m_StatWater && m_StatEnergy && m_BleedMgr ) { GetGame().ChatPlayer( m_PlayerPrefix + " died. Stats> Water: " + m_StatWater.Get().ToString() + " Energy: " + m_StatEnergy.Get().ToString() + " Bleed sources: " + m_BleedMgr.GetBleedingSourcesCount().ToString() ); } else if ( m_StatWater && m_StatEnergy && !m_BleedMgr ) { GetGame().ChatPlayer( m_PlayerPrefix + " died. Stats> Water: " + m_StatWater.Get().ToString() + " Energy: " + m_StatEnergy.Get().ToString() ); } else { GetGame().ChatPlayer( m_PlayerPrefix + " died. Stats> could not fetch"); } } else if ( source.IsWeapon() ) // player { m_Source = PlayerBase.Cast( EntityAI.Cast( source ).GetHierarchyParent() ); m_PlayerPrefix2 = this.GetPlayerPrefix( m_Source , m_Source.GetIdentity() ); GetGame().ChatPlayer( m_PlayerPrefix + " killed by " + m_PlayerPrefix2 + " with " + source.GetDisplayName() ); } else // others { GetGame().ChatPlayer( m_PlayerPrefix + " killed by " + source.GetDisplayName() ); } } else { GetGame().ChatPlayer("DEBUG: PlayerKilled() player/object does not exist"); } } }
Doesn't print "Custom PlayerKilled" in script.log when a player is killed
modded class PluginAdminLog { void PluginAdminLog() { Print("Plugin loaded"); } void ~PluginAdminLog() { Print("Plugin died"); } override void PlayerKilled( PlayerBase player, Object source ) // PlayerBase.c { Print("Custom PlayerKilled"); // super.PlayerKilled(player, source); if ( player && source ) { m_PlayerPrefix = this.GetPlayerPrefix( player , player.GetIdentity() ); if( player == source ) // deaths not caused by another object (starvation, dehydration) { m_StatWater = player.GetStatWater(); m_StatEnergy = player.GetStatEnergy(); m_BleedMgr = player.GetBleedingManagerServer(); if ( m_StatWater && m_StatEnergy && m_BleedMgr ) { GetGame().ChatPlayer( m_PlayerPrefix + " died. Stats> Water: " + m_StatWater.Get().ToString() + " Energy: " + m_StatEnergy.Get().ToString() + " Bleed sources: " + m_BleedMgr.GetBleedingSourcesCount().ToString() ); } else if ( m_StatWater && m_StatEnergy && !m_BleedMgr ) { GetGame().ChatPlayer( m_PlayerPrefix + " died. Stats> Water: " + m_StatWater.Get().ToString() + " Energy: " + m_StatEnergy.Get().ToString() ); } else { GetGame().ChatPlayer( m_PlayerPrefix + " died. Stats> could not fetch"); } } else if ( source.IsWeapon() ) // player { m_Source = PlayerBase.Cast( EntityAI.Cast( source ).GetHierarchyParent() ); m_PlayerPrefix2 = this.GetPlayerPrefix( m_Source , m_Source.GetIdentity() ); GetGame().ChatPlayer( m_PlayerPrefix + " killed by " + m_PlayerPrefix2 + " with " + source.GetDisplayName() ); } else // others { GetGame().ChatPlayer( m_PlayerPrefix + " killed by " + source.GetDisplayName() ); } } else { GetGame().ChatPlayer("DEBUG: PlayerKilled() player/object does not exist"); } } }
Prints "Custom PlayerKilled" as expected in script.log when a player is killed