diff --git a/Source/Game/AI/SmartScripts/SmartAIManager.cs b/Source/Game/AI/SmartScripts/SmartAIManager.cs index 48849b68d..f29901dcd 100644 --- a/Source/Game/AI/SmartScripts/SmartAIManager.cs +++ b/Source/Game/AI/SmartScripts/SmartAIManager.cs @@ -2172,7 +2172,7 @@ namespace Game.AI } public struct GossipHello { - public uint noReportUse; + public uint filter; } public struct Gossip { diff --git a/Source/Game/AI/SmartScripts/SmartScript.cs b/Source/Game/AI/SmartScripts/SmartScript.cs index 75c1d68ea..b10203596 100644 --- a/Source/Game/AI/SmartScripts/SmartScript.cs +++ b/Source/Game/AI/SmartScripts/SmartScript.cs @@ -3272,8 +3272,26 @@ namespace Game.AI break; case SmartEvents.GossipHello: { - if (e.Event.gossipHello.noReportUse != 0 && var0 != 0) - return; + switch (e.Event.gossipHello.filter) + { + case 0: + // no filter set, always execute action + break; + case 1: + // OnGossipHello only filter set, skip action if OnReportUse + if (var0 != 0) + return; + break; + case 2: + // OnReportUse only filter set, skip action if OnGossipHello + if (var0 == 0) + return; + break; + default: + // Ignore any other value + break; + } + ProcessAction(e, unit, var0, var1, bvar, spell, gob); break; }