SetEventProc
Registers (or unregisters) a script procedure as a handler for a specific game event.
Eventname — the event type to handle, of type TPacketEvent.
Procname — the name of the procedure in the script to call when the event fires. Pass an empty string '' to unregister the handler.
If a handler is already registered for this event and you set a different one without clearing first, a warning is logged to the system journal. To change handlers, first call SetEventProc(event, '') to unregister the old one, then set the new handler.
Several legacy event names are deprecated and will log a warning:
| Deprecated | Use instead |
|---|---|
evUnicodeSpeech |
evSpeech |
evClilocSpeechAffix |
evClilocSpeech |
evDrawGamePlayer |
evDrawObject |
evUpdateChar |
evDrawObject |
In Python, event types are available as EventType enum members (auto-imported), and the second parameter accepts a function reference or None to unregister.
For the complete list of event types, handler signatures, and callback parameter documentation, see the Events manual.
Регистрирует (или снимает) процедуру скрипта как обработчик определённого игрового события.
Eventname — тип события, TPacketEvent.
Procname — имя процедуры в скрипте для вызова при наступлении события. Передайте пустую строку '' для снятия обработчика.
Если обработчик уже назначен — выводится предупреждение. Сначала снимите старый: SetEventProc(event, ''), затем установите новый.
Ряд устаревших имён событий вызывает предупреждение (см. таблицу выше).
В Python типы событий доступны как члены перечисления EventType (автоимпорт), второй параметр принимает ссылку на функцию или None для снятия.
Полный список типов событий, сигнатуры обработчиков и описание параметров callback-ов — в мануале по событиям.
procedure SetEventProc(Eventname: TPacketEvent; Procname: String);
def SetEventProc(event_type, Callback=None) -> None: ...
procedure OnSpeech(SenderName, SenderMsg: String);
begin
AddToSystemJournal('Speech from ' + SenderName + ': ' + SenderMsg);
end;
begin
SetEventProc(evSpeech, 'OnSpeech');
AddToSystemJournal('Speech event handler registered');
while Connected do
Wait(1000);
end.
def on_speech(sender_name, sender_msg):
AddToSystemJournal(f'Speech from {sender_name}: {sender_msg}')
SetEventProc(EventType.EvSpeech, on_speech)
AddToSystemJournal('Speech event handler registered')
while Connected():
Wait(1000)