Sessions : les comptes au-dessus du niveau 0 ne sont plus coupes pour inactivite
Demande : « j aimerai que les comptes au-dessus du numero 0, c est a dire
les comptes GM/testeur/admin, ne soient pas soumis en jeu a la
deconnexion automatique en cas d absence prolongee ».
La coupure vient de WorldSession::Update :
if (!IsBotSession() && IsConnectionIdle())
m_Socket[CONNECTION_TYPE_REALM]->CloseSocket();
IsConnectionIdle() s appuie sur m_timeOutTime, initialise depuis
SocketTimeOutTime (900 000 ms, soit 15 minutes) et decremente a chaque
tick sans paquet entrant.
On ajoute GetSecurity() <= SEC_PLAYER a la condition. Les comptes de
niveau superieur restent connectes indefiniment ; les joueurs ordinaires
demeurent soumis au delai, la protection contre les sessions fantomes
gardant tout son interet pour eux.
Motif concret : ces comptes restent volontairement inactifs de longues
minutes pour observer une zone, suivre un evenement scripte ou attendre
le resultat d un test -- et se faisaient couper en plein travail, parfois
au milieu d une instance.
Portee actuelle : 5 comptes concernes (3 de niveau 1, 2 de niveau 4).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -350,7 +350,20 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
|
||||
|
||||
///- Before we process anything:
|
||||
/// If necessary, kick the player from the character select screen
|
||||
if (!IsBotSession() && IsConnectionIdle())
|
||||
//
|
||||
// SylvaniaCore : les comptes de niveau superieur a SEC_PLAYER --
|
||||
// maitres de jeu, testeurs, administration -- ne sont plus coupes
|
||||
// pour inactivite.
|
||||
//
|
||||
// Motif : ces comptes restent volontairement connectes de longues
|
||||
// minutes sans emettre de paquet, le temps d'observer une zone, de
|
||||
// suivre un evenement scripte ou d'attendre le resultat d'un test.
|
||||
// Le delai de SocketTimeOutTime (900 s) les deconnectait en plein
|
||||
// travail, parfois au milieu d'une instance.
|
||||
//
|
||||
// Les joueurs ordinaires restent soumis au delai : la protection
|
||||
// contre les sessions fantomes conserve tout son interet pour eux.
|
||||
if (!IsBotSession() && GetSecurity() <= SEC_PLAYER && IsConnectionIdle())
|
||||
m_Socket[CONNECTION_TYPE_REALM]->CloseSocket();
|
||||
|
||||
///- Retrieve packets from the receive queue and call the appropriate handlers
|
||||
|
||||
Reference in New Issue
Block a user