Как определить, был ли игрок на сервере до рестарта/новой карты?

Сообщения
105
Реакции
194
Возникла задача, мне нужно определить, находился ли игрок на сервере до того как поменялась карта или произошел рестарт.
Была мысль получить время, которое игрок провёл на сервере (оно отображается в списке игроков в сервербраузере и не сбрасывается после начала очередной карты), и уже на основании этих данных строить логику. Но я не знаю каким образом можно получить это время, get_user_time() просто возвращает время, которое игрок провёл на сервере отсчитывая от начала карты, это не то. Каким образом можно решить эту задачу?
 
Сообщения
702
Реакции
54
SNMetamorph, а что ты хочешь сделать с этим игроком то? И об скольки игроках нужно узнать?
 
Сообщения
105
Реакции
194
а что ты хочешь сделать с этим игроком то?
Сделать, чтобы приветствие на сервере проигрывалось только когда игрок заходит на сервер первый раз, а не при каждой смене карты.
SNMetamorph, а что ты хочешь сделать с этим игроком то? И об скольки игроках нужно узнать?
Обо всех.
 
Сообщения
702
Реакции
54
SNMetamorph, тьфу ты, я думал что-то для постоянной проверки))
Сохраняй в nvault, sql чуваков и потом проверяй при коннекте, есть ли запись.
2 Ноя 2020
С файликом всё очень просто, если смотреть мануал
А вот с бд будет немного сложнее, но лучше хранить, если большое кол. данных будет :)
 
Сообщения
855
Реакции
532
Помог
13 раз(а)
дин.массив + записывать его userid и сравнивать при входе на сервер
nvault или sql нафиг не нужен, это супер временная инфа
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
BalbuR, при смене карты все твои массивы очищаются, ты не получишь того, что хотел тс
 
Сообщения
855
Реакции
532
Помог
13 раз(а)
Javekson, а я наоборот понял как-раз таки подумал
 
Сообщения
702
Реакции
54
BalbuR, я вообще изначально подумал, что он хочет как-то сохранять каждую карту идентификатор, чтобы на след. проверять был ли игрок на предыдущей карте)) :crazy:
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
К размышлению: RH_SV_DropClient в отличие client_disconnected/client_disconnect, не вызывается при смене карты.
Также к размышлению: на форуме, в ресурсах есть амхх модуль Persistent Data Storage.
 
Сообщения
64
Реакции
131
Помог
4 раз(а)
Насколько я помню
get_localinfo | amxmodx | AMX X Documentation и set_localinfo | amxmodx | AMX X Documentation хранит данные и при смене карты
В plugin_end туда можно записать SteamID всех игроков, а в plugin_init прочитать и обнулить.

PS: как раз в стандартном мапчусере это используется для получения последней карты
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
ThePhoenix, кто запрещает в памяти хранить игроков?) Единственный минус - момент выключения/падения сервера.
А де про "запомнить раз и навсегда"?
 
Сообщения
702
Реакции
54
Сделать, чтобы приветствие на сервере проигрывалось только когда игрок заходит на сервер первый раз, а не при каждой смене карты.
Обо всех.
d3m37r4, в памяти хранить игроков разве хороший вариант?)
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
d3m37r4, в памяти хранить игроков разве хороший вариант?)
Чем плохо? Кроме указанных выше недостатков.
3 Ноя 2020
SNMetamorph, стата игроков есть? У фримана в стате ведется учет времени на серве, если его стата присутствует, можно нативом по игроку получать инфу о времени serfreeman1337/csstatsx-sql
 
Сообщения
702
Реакции
54
d3m37r4, память умеет течь)

Тогда уж лучше получать нативом, загружены данные игрока или нет, если нет, то приветствие, если получены, пропускаем.
 
Сообщения
702
Реакции
54
fantom, сказано было в целом, а не за Ваш модуль, если не понятно было.
 

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

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