diff --git a/source/src/client.cpp b/source/src/client.cpp index 3f0ee811..5f89e1a1 100644 --- a/source/src/client.cpp +++ b/source/src/client.cpp @@ -208,7 +208,11 @@ void disconnect(int onlyclean, int async) #endif if(!onlyclean) localconnect(); - if(identexists("onDisconnect")) execute("onDisconnect"); + if(identexists("onDisconnect")) + { + defformatstring(ondisconnect)("onDisconnect %d", -1); + execute(ondisconnect); + } } void trydisconnect() diff --git a/source/src/clients2c.cpp b/source/src/clients2c.cpp index 2ee6936b..35694c40 100644 --- a/source/src/clients2c.cpp +++ b/source/src/clients2c.cpp @@ -639,6 +639,11 @@ void parsemessages(int cn, playerent *d, ucharbuf &p, bool demo = false) if(!d) break; if(d->name[0]) conoutf(_("player %s disconnected"), colorname(d)); zapplayer(players[cn]); + if(identexists("onDisconnect")) + { + defformatstring(ondisconnect)("onDisconnect %d", d->clientnum); + execute(ondisconnect); + } break; }