Getting the name of a game event in PostHook of firing an event?
Posted: Sat Jul 25, 2015 1:18 pm
I'm trying to fire my own game event listeners after all the other listeners have been called. I'm using PostHook for this purpose, here's my code:
I'm getting this error:
Apparently this is because FireEvent function deletes the IGameEvent pointer (thanks Ayuto), and thus I can't get the event's name.
Any fix for this, or a work around to post-fire my own game event listeners?
Syntax: Select all
FIRE_EVENT_FUNC = get_object_pointer(game_event_manager).make_virtual_function(
7 if PLATFORM == 'windows' else 8,
Convention.THISCALL,
(DataType.POINTER, DataType.POINTER, DataType.BOOL),
DataType.BOOL
)
@PostHook(FIRE_EVENT_FUNC)
def post_fire_event(args, return_value):
game_event = make_object(GameEvent, args[1])
name = game_event.get_name()
if name == 'player_death':
post_player_death(game_event)
elif name == 'player_disconnect':
post_player_disconnect(game_event)
Code: Select all
[SP] Caught an Exception:
Traceback (most recent call last):
File '..\addons\source-python\packages\custom\easyplayer.py', line 64, in post
_fire_event
game_event = make_object(GameEvent, args[1])
RuntimeError: Access violation - no RTTI data!
Any fix for this, or a work around to post-fire my own game event listeners?