Skip to content

Why doesn't TriggerRegisterFilterUnitEvent accept EVENT_UNIT_DEATH? #193

@Luashine

Description

@Luashine

Duplicating the hive thread here to track it: https://www.hiveworkshop.com/threads/whats-the-difference-between-triggerregister-filterunitevent-and-unitevent.364349/

What's the difference between TriggerRegister-FilterUnitEvent and -UnitEvent?

Hi there. See title. Jass/Lua, doesn't matter. The examples will be in Lua, but I would like to know what's the difference or an explanation for this behavior?

sameTrigger = CreateTrigger()

sheep = CreateUnit(Player(0), FourCC"nshe", -256, 0, 270.0)

TriggerRegisterUnitEvent(sameTrigger, sheep, EVENT_UNIT_DEATH) -- returns a new event

TriggerRegisterPlayerUnitEvent(sameTrigger, Player(0), EVENT_PLAYER_UNIT_DEATH, nil) -- returns a new event

TriggerRegisterFilterUnitEvent(sameTrigger, sheep, EVENT_UNIT_DEATH, nil) -- returns nil

Why does UnitEvent work with "EVENT_UNIT_DEATH", but FilterUnitEvent does not and returns null? Both register "EVENT_UNIT_LOADED" just fine.

For reference, the native declarations are:

native TriggerRegisterUnitEvent       takes trigger whichTrigger, unit whichUnit,           unitevent whichEvent                            returns event

native TriggerRegisterPlayerUnitEvent takes trigger whichTrigger, player whichPlayer, playerunitevent whichPlayerUnitEvent, boolexpr filter returns event

native TriggerRegisterFilterUnitEvent takes trigger whichTrigger, unit whichUnit,           unitevent whichEvent,           boolexpr filter returns event

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions