Home API Manuals About Forum
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

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-ов — в мануале по событиям.

Pascal

procedure SetEventProc(Eventname: TPacketEvent; Procname: String);

Python

def SetEventProc(event_type, Callback=None) -> None: ...

Pascal Example

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.

Python Example

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)

See Also

InJournal