client_disconected vs client_disconect

Сообщения
258
Реакции
262
Помог
5 раз(а)
Я просто добавляю "ed",
public client_disconnected(id) {
Возможен такой вариант или это неправильно?
Да, конечно, возможен. Только в этом случае уже не будет обратной совместимости с AMXX < 1.8.3.
 
Сообщения
241
Реакции
224
Помог
2 раз(а)
При использовании client_disconnected с amx 1.8.3 dev, если используется nvault с сохранением при отключении игрока от сервера, при смене карты сохранение не происходит, только при реальном выходе игрока. Если же не обращать внимания на варнинг и использовать client_disconnect, то все работает корректно.
Варнинг прописан в инклуде, можно удалить или закомментировать.

Небольшое отступление от темы)
 
Сообщения
258
Реакции
262
Помог
5 раз(а)
pheel, гм, интересная информация, надо глянуть исходники. Если это так, то нужно будет делать цикл по игрокам в plugin_end. Warning будет тоже до поры, до времени, затем этот форвард будет исключён из более поздних версий.
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Endzhey,
C++:
#if AMXX_VERSION_NUM < 183
#define client_disconnected client_disconnect
#endif

1 Июл 2017
C++:
#if defined client_disconnected
#define player_disconnect client_disconnected
#else
#define player_disconnect client_disconnect
#endif

1 Июл 2017
При использовании client_disconnected с amx 1.8.3 dev, если используется nvault с сохранением при отключении игрока от сервера, при смене карты сохранение не происходит, только при реальном выходе игрока. Если же не обращать внимания на варнинг и использовать client_disconnect, то все работает корректно.
Варнинг прописан в инклуде, можно удалить или закомментировать.

Небольшое отступление от темы)
Полезная информация. Поставил бы лайк, если мог :)
 
Сообщения
258
Реакции
262
Помог
5 раз(а)
Посмотрел исходники. void C_ServerDeactivate (plugin_end), void C_ClientDisconnect ; разница между форвардами в том, что: а) client_disconnect вызывается перед client_disconnected; б) client_disconnected вызывается уже только в том случае, если выполняется условие:

Код:
if (DropClientDetour && !pPlayer->disconnecting)


которое проверяет, что игрок ещё не был отключен (что такое DropClientDetour - я не знаю). Поэтому, как уже написал выше Minni, вполне можно использовать переопределение форварда на этапе компиляции. Возможно, есть лучшее решение. Можно попробовать также отловить форвард client_remove и проверить, решит ли это проблему.
 
Сообщения
241
Реакции
224
Помог
2 раз(а)
Subb98, будет время, потестирую. Спасибо за информацию)
 
Сообщения
1,032
Реакции
827
Помог
10 раз(а)
pheel, сохраняй и при дисконекте и при смене карты plugin_end()
 
Сообщения
241
Реакции
224
Помог
2 раз(а)
Javekson, была идея туда цикл воткнуть для сохранения. Но пока так работает, устраивает.
 
Сообщения
1,032
Реакции
827
Помог
10 раз(а)
pheel, ответ от Тёмы: "DropClientDetour равен nullptr во время использования апи рехлдс"
Ожидайте фикс AMXX.
 
Сообщения
241
Реакции
224
Помог
2 раз(а)
Javekson, :good2:
Тогда и проверять ничего не буду)
 
Сообщения
258
Реакции
262
Помог
5 раз(а)
Javekson, проверю сегодня, отпишусь.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу